python之日志logging(一)

  python内置的logging模块,不能直接拿来用,不满足需求,需要自己进行封装成日志函数或者类来对日志进行处理

1、日志的作用

方便定位、记录问题

2、封装日志的过程

1)获取日志收集器 logger = logging.getLogger(name)

2)设置收集器的日志等级 logger.setLevel(level) level为日志等级的大写字符串

3)获得处理器准备

handler = logging.StreamHandler() ------流处理器,标准输入输出,日志输出到控制台

file_handler = logging.FileHandler(file,encoding="utf-8")-----文件处理器,file为日志输出文件,为文件的路径,默认模式为“a”追加模式

4)设置处理器的日志等级 handler.setLevel(level)/file_handler.setLevel(level)level为日志等级的大写字符串

5)设置日志输出格式 fmt = logging.Formatter("%(levelname)s:%(name)s:%(message)s") 格式标准可参考:https://docs.python.org/zh-cn/3/library/logging.html

6)处理器设置日志输出格式

handler .setFormatter(fmt)/file_handler.setFormatter(fmt)

7)调用logger的debug、info、warning、critical方法输出日志

注:处理器的日志级别比收集器的日志级别高的时候只会输出处理器的日志级别以及以上级别的日志,低于处理级别的不会输出

3、日志级别

NOSET 0:无关紧要的日志信息,等于没写,废话

DEBUG 10:调试日志信息,一些额外信息,备注,往往和主体功能无关。日报里面备注

INFO 20:(主程序信息,程序运行的过程)主体功能的信息,日报,做了些啥

WARRING 30:告警信息,虽然不报错,但是可能下次就会出现错误了

ERROR 40:错误信息,报错了

CRITICAL 50:严重致命错误,系统崩溃

日志输出:输出日志会输出级别以及级别以上的日志,低于级别的不会输出,比如日志级别为INFO,那日志就可以输出INFO、WARRING、ERROR、CRITICAL等级的日志,DEBUG和NOSET的不会输出

 

posted @ 2020-12-31 16:15  %女王%  阅读(197)  评论(0编辑  收藏  举报