logging日志模块

2021-06-09  本文已影响0人  鼓鼓06

作用:报告状态、错误和信息消息

1、配置级别setLevel

大多数应用都配置为将日志记入文件,使用basicConfig()函数建立默认处理器,从而将调试消息写至一个文件。

import logging
logging.debug(u"苍井空")
logging.info(u"麻生希")
logging.warning(u"小泽玛利亚")
logging.error(u"桃谷绘里香")
logging.critical(u"泷泽萝拉")

这能看到打印后三个,因为默认的root logger的level是logging.WARNING,低于该级别的就不输出了。
级别排序:critical > error > warning > info > debug
如果需要显示低于wanrning级别的内容,setLevel(logging.DEBUG)来显示:

import logging
logger=logging.getLogger()
logger.setLevel(logging.INFO)
logging.debug(u"可以采取debug、info的级别的内容也可以显示在控制台上了")
logging.info(u'info也能显示')
logging.warning(u"小泽玛利亚")

2、常用函数

3、Handler使用

不知道为啥basicConfig全局配置在我的环境中不能使用,因此先声明一个Logger对象,使用Handler来指定对象,使用Handler对象指定Formatter对象单独配置输出格式,最后给Logger对象添加对应的Handler即可,日志会被输出到output.log中,内容如下:

import logging
logger=logging.getLogger()
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler = logging.FileHandler('output.log')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.debug(u"这里可以采取debug、info的级别的内容也可以显示在控制台上了")
logger.info(u'info也能显示')
logging.warning(u"小泽玛利亚")

Handler种类

Formatter

我们指定Formatter,传入fmt和datefmt参数,指定日志结果的输出格式和时间格式,然后handler通过setFormatter()方式设置此Formatter对象即可

参考文献:
https://www.cnblogs.com/liuyanhang/p/10795522.html
https://www.cnblogs.com/xianyulouie/p/11041777.html
https://docs.python.org/3/howto/logging.html#logging-basic-tutorial

上一篇 下一篇

猜你喜欢

热点阅读