Python Logging Basic Tutorial
文章目录
Python的logging包提供了日志功能。
诊断日志 记录与应用程序操作相关的日志。例如,用户遇到的报错信息, 可通过搜索诊断日志获得上下文信息。
审计日志 为商业分析而记录的日志。从审计日志中,可提取用户的交易信息, 并结合其他用户资料构成用户报告或者用来优化商业目标。
下面介绍其基本使用方法。 logging记录的日志是分级别的。按照严重程度从低到高排列为 DEBUG , INFO , WARNING , ERROR , CRITICAL 。 下表展示了各级别日志的用途。
级别 | 用途 |
---|---|
DEBUG | 用于诊断程序时。 |
INFO | 确认工作如预期一样进行。 |
WARNING | 提醒未预料到的事情发生,或者将要发生什么问题。程序还是会正常运行下去。 |
ERROR | 由于某个严重的问题,程序不能执行某些函数。 |
CRITICAL | 程序出错,不能继续运行下去。 |
logging输出的级别默认为 WARNING 。
一个最简单的例子
|
|
1
|
WARNING:root:将会输出 |
下面这个例子通过logging.basicConfig
函数配置logging的日志文件和级别。
|
|
append
,可以通过给logging.basicConfig
传入filemode
参数控制。
例如,
|
|
如果代码包含其他模块,而其他模块也需要logging,下面的方法可以供以参考。
|
|
|
|
1 2 3 |
INFO:root:Started INFO:root:Doing something INFO:root:Finished |
通过给logging.basicConfig
传入format
参数可以改变日志信息的格式。
例如,
|
|
1
|
2018-03-04 19:53:35,697 DEBUG: hello, debug! |
其中的asctime
可以通过传入datefmt
参数进一步控制时间的显示。其格式和time.strftime()的一样。
例如,
|
|
1
|
03/04/2018 07:56:36 PM is when this event was logged. |
总结
- import logging
- logging.basicConfig() 配置logging
- Args
- filename: 日志文件路径,默认为
sys.stderr
。 - filemode: 文件写入模式,
{'w', 'a'}
。 - level: 日志级别,按严重程度从低到高为 DEBUG , INFO , WARNING , ERROR , CRITICAL 。默认为
logging.WARNING
。 - format: 记录输出格式,可定制的几个基本对象是
- asctime: 适合人阅读的时间格式。
- levelname: 记录级别。
- message: 具体记录信息。
- datefmt: 控制
asctime
的输出格式,例如'%m/%d/%Y %I:%M:%S %p'
。其格式和time.strftime()的一样。
文章作者 nanqiao15
上次更新 2018-03-04