首页 > 其他分享 >封装log

封装log

时间:2022-09-26 22:14:24浏览次数:49  
标签:logging log level self msg 封装 my

import logging
from conf.project_path import *
class Log:
def my_log(self,msg,level):
#定义一个日志收集器
my_logging = logging.getLogger("记录的日志是")

#设定级别
my_logging.setLevel("DEBUG")

#设置格式格式 %(asctime)s - %(name)s - %(levelname)s - %(message)s
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - 日志信息:%(message)s')

#创建输出渠道
ch = logging.StreamHandler()
ch.setLevel("DEBUG")
ch.setFormatter(formatter)

fh = logging.FileHandler(log_path,encoding="utf-8")
fh.setLevel("DEBUG")
fh.setFormatter(formatter)

#对接
my_logging.addHandler(ch)
my_logging.addHandler(fh)

#收集日志
if level == "DEBUG":
my_logging.debug(msg)
elif level == "ERROR":
my_logging.error(msg)
elif level == "INFO":
my_logging.info(msg)
elif level == "WARNING":
my_logging.warning(msg)
elif level == "CRITICAI":
my_logging.critical(msg)

#关闭渠道
my_logging.removeHandler(ch)
my_logging.removeHandler(fh)

def debug(self,msg):
self.my_log(msg,"DEBUG")
def info(self,msg):
self.my_log(msg,"INFO")
def error(self,msg):
self.my_log(msg,"ERROR")
def critical(self,msg):
self.my_log(msg,"CRITICAI")
def warning(self,msg):
self.my_log(msg,"WARNING")

if __name__ == '__main__':
pass
# my_log = Log()
# my_log.debug("不可以")
# my_log.info("可以")
# Log().my_log("周一天气真好1","ERROR")
# Log().my_log("周二天气真好1", "ERROR")
# Log().my_log("周三天气真好1", "INFO")

标签:logging,log,level,self,msg,封装,my
From: https://www.cnblogs.com/huanyingnidedaolai/p/16732689.html

相关文章

  • 封装unittest
    importunittestfromtools.http_rquestsimportHttpRequestsfromtools.get_dataimportGetCookiefromddtimportddt,datafromtools.do_excelimportDoExcelfromco......
  • 封装,继承,多态
    封装属性私有get/set(有时候设置安全性的判断)提高程序的安全性,保护数据隐藏代码的实现细节同意接口系统可维护增加了继承继承的本质是对某一批嘞的抽象,......
  • java 封装一个二分查询函数
    packageBinarySearch;importjava.lang.reflect.Array;publicclassTest{publicstaticvoidmain(String[]args){intarr[]={2,6,7,8,9,11,13,......
  • dotnet-cnblogs-tool使用与坑-cnblog
    目录安装安装的坑使用重置配置上传图片其他说明设置右键菜单dotnet-cnblogs-tool使用与坑安装具有.NETCore/.NET5环境可以直接使用命令......
  • 使用appsettings.json配置和依赖注入调用Serilog日志模块
    appsettings.json配置Serilog{//"Logging":{//"LogLevel":{//"Default":"Information",//"Microsoft.AspNetCore":"Warning"//}//},......
  • InnoDB MVCC——隐藏字段、Undolog、ReadView
    和MVCC相关的三个东西隐藏字段:InnoDB表中的每个行前都有的三个隐藏字段,用于实现MVCC机制undolog:用于记录数据的历史版本,每一个数据的历史版本在undolog中构成一个历史版......
  • Verilog运算符优先级
    Verilog运算符按功能可以分为九类。1.基本算数运算符运算符中文名举例举例结果说明+加法运算符或正值运算符12+315同普通加法-减法运算符或负值运算......
  • MySQL slow log 慢日志
    sql慢日志用于记录执行时间超过指定阈值的SQL,对于系统性能和故障排错非常有帮助开启sql慢日志--开启slowlogset@@global.slow_query_log=1;--设置slowlog文件名,默......
  • 封装日志Mylogger
    importloggingimportosfromCommon.handle_pathimportlogs_dirfromCommon.handle_configimportconfclassMyLogger(logging.Logger):def__init__(self,f......
  • 封装配置文件,读取配置文件
    #封装配置文件fromconfigparserimportConfigParserimportosfromCommon.handle_pathimportconf_dirfile_path=os.path.join(conf_dir,'config.ini')class......