python 之logging 封装为基础类

"""
参考文档:https://www.cnblogs.com/yyds/p/6901864.html
logging模块的四大组件:
loggers(日志器):提供应用程序代码直接使用的接口
handlers(处理器):用于将日志记录发送到指定的目的位置
filters(过滤器):提供更细粒度的日志过滤功能,用于决定哪些日志记录将会被输出(其它的日志记录将会被忽略)
formatters(格式器):用于控制日志信息的最终输出格式
"""
 1 import logging
 2 import logging.handlers
 3 import time
 4 from testcase.basic import get_project_path
 5 
 6 
 7 def get_logger():
 8     # 第一步,创建一个logger
 9     logger = logging.getLogger()
10     # 设置log日志等级
11     logger.setLevel(logging.INFO)
12     # 第二步,创建一个handler,用于写入日志文件
13     strf_time = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))
14     project_path = get_project_path.get_project_path()  # 获取项目跟目录,获取项目根路径的方法,之前发过,请翻阅一下。
15     filename = project_path + '/log/' + strf_time + '.log'  # 定义日志存放路径及名称
16     # 创建 hander,设置日志切割时间(半夜),按天存放,最多存放7个日志文件
17     rf_handler = logging.handlers.TimedRotatingFileHandler(filename, when='midnight', interval=1, backupCount=7
18                                                            , encoding="UTF-8")
19     # 第三步,定义handler的输出格式
20     data_format = "%Y-%m-%d %H:%M:%S"
21     rf_handler.setFormatter(logging.Formatter("%(asctime)s-%(filename)s-%(funcName)s[line:%(lineno)d]-%(levelname)s:%("
22                                               "message)s", datefmt=data_format))
23     # 第四步,将logger添加到handler里面,并返回
24     logger.addHandler(rf_handler)
25     return logger
26 
27 
28 if __name__ == '__main__':
29     def test01():
30         logger = get_logger()
31         logger.debug('***debug***')
32         logger.info('***信息***')
33         logger.warning('***警告***')
34         logger.error('***error***')
35         logger.critical('***critical***')
36     test01()
运行后效果:

 


 



posted @ 2022-04-24 16:33  别摸我的马甲线  阅读(475)  评论(0)    收藏  举报