日志(logging)
日志是什么记录软件/应用程序/代码的运行记录
为什么需要日志
日志可记录错误发生的时间、错误级别、发生错误的文件、错误发生在哪一行、错误信息等,方便后期定位问题
日志的级别
日志有如下5个级别:debug、info、warning、error、critical(依次越来越严重)
日志的输出
日志完整的输出需要如下三个步骤:
①指定收集日志的容器(默认的日志收集容器:root logger)
②指定输出渠道(默认渠道:console)
③指定输出格式(默认格式:级别:日志收集器名称:日志信息)
④默认输出的日志级别会自动过滤掉debug和info级别的日志,仅输出warning及以上级别的日志(将鼠标放到logging.debug/logging.info/logging.warning/logging.error/logging.critical中任意一个日志级别(debug/info/warning/error/critical)上,然后按住键盘上的Ctrl键并单击鼠标左键跳转到__init__.py模块,将root = RootLogger(WARNING)中的WARNING修改为DEBUG后,控制台即可输出debug及以上级别的日志了)
写一个属于自己的日志系统
一个属于自己的日志系统,那么日志收集器和输出渠道肯定就不能用系统默认的
(1)输出渠道为控制台
①创建属于自己的日志收集器
mylogger = logging.getLogger('mylogger')
---创建一个以mylogger命名的日志收集器,如果没指定日志收集器的名字系统会默认使用root logger这个收集器
②设置日志收集器收集日志的级别
mylogger.setLevel('DEBUG')
③创建属于自己的输出渠道
SH = logging.StreamHandler()
---创建一个输出到控制台的输出渠道,如果没指定输出渠道系统会默认使用console这个输出渠道
④设置输出渠道输出日志的级别
SH.setLevel('DEBUG')
⑤对接日志收集器和输出渠道
mylogger.addHandler(SH)
(2)输出渠道为文件
①创建属于自己的日志收集器
mylogger = logging.getLogger('mylogger')
---创建一个以mylogger命名的日志收集器,如果没指定日志收集器的名字系统会默认使用root logger这个收集器
②设置日志收集器收集日志的级别
mylogger.setLevel('DEBUG')
③创建属于自己的输出渠道
FH = logging.FileHandler('mylogger.log',encoding = 'utf-8')
---创建一个输出到mylogger.log文件的输出渠道,如果没指定输出渠道系统会默认使用console这个输出渠道
④设置输出渠道输出日志的级别
FH.setLevel('DEBUG')
⑤对接日志收集器和输出渠道
mylogger.addHandler(FH)
我们看看这个mylogger.log文件里都有些啥
注意:
①日志收集器的收集日志级别和输出渠道输出日志的级别不一致,则取高级别(取交集)
②日志输出完记得要remov掉,否则会出现重复的日志信息
③设置日志输出格式
formatter = logging.Formatter('[%(asctime)s]-[%(levelname)s]-[%(filename)s]-日志信息:%(message)s')
(1)日志输出格式应在定义日志输出渠道之前设置好
(2)定义日志输出渠道后需要应用设置的日志输出格式,否则无效
附:日志的格式化输出
页:
[1]