Python3 常用的 logging 配置
引言
好的日志模块对于程序的编写,项目的组织是必不可少的。在编码的过程中,好的日志模块能够帮助 coder 少走很多弯路,在 debug 的过程中,日志能够帮助快速复查与定位问题。
我们从日志中定位问题,观察程序的运行细节。一个好的日志应当是可以被溯源的。
一个好的日志应当包含哪些内容呢?
- 执行的脚本
- 当前执行的函数,函数的输入与输出
- 详细时间
- 必要的事件
- 重要的状态变量
代码:
import logging
formatter = logging.Formatter(
fmt='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
logger = logging.getLogger(__file__)
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setFormatter(formatter)
fh = logging.FileHandler("__file__"+".log")
fh.setFormatter(formatter)
logger.addHandler(ch)
logger.addHandler(fh)
logger.info('This is a info log.')
logger.error('This is a error log.')
基于 JSON 与 YAML 的配置文件
未完待续
参考资料
[1] logging cookbook: https://docs.python.org/3/howto/logging-cookbook.html#logging-cookbook
[2] https://www.cnblogs.com/liujiacai/p/7804848.html
[3] Python Cookbook 第三版