这个模块经常用, 由于用法比较复杂, 老是用一次忘一次. 今天写一篇学习笔记, 加深印象. refer to: python tutorial
各个level的说明(按等级高低排序):
levels | 说明 |
---|---|
DEBUG | 用来诊断是否有bug的详细信息 |
INFO | 确认程序按预想的执行 |
WARNING | 提示有不期望的事情发生, 或者可能会引起某些未来的问题 |
ERROR | 提示某些更严重的信息, 已经引起某些功能的丧失 |
CRITICAL | 提示某些更严重的错误, 这些错误会导致程序不能往下执行 |
模块使用:
首先需要logging.basicConfig()来配置, 以下是参数说明:
- filename: 指定log文件存放位置.
- filemode: 与filename搭配使用. 如果赋值为'w', 执行生成的log会覆盖上次的文件.
- level: 指定log的等级. 比如赋值为logging.DEBUG, 则包括DEBUG以及比DEBUG更重要的等级. 默认的level值是logging.WARNING
- format: 需要对logRecord attributes引用. 引用方式为: %(attr)s
logging.basicConfig(format='%(asctime)s %(message)s', ...)
- 如果format里使用了asctime, 那么datefmt参数可以配置时间显示方式:
logging.basicConfig(format='%(asctime)s, datefmt='%m/%d/%Y %H:%M:%S')
其他用法:
可以在执行python文件时命令行指定level等级:
--log=INFO
在python文件中获取:
numeric = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric, int):
raise ValueError('Invalid log level %s' % loglevel)
logging.basicConfig(level=numeric, ....)
还有很多高阶的用法, 一般用不到. 如果你感兴趣, 可参考: advanced usage of logging