Python 中的日志记录

日志是对软件执行时所发生事件的一种追踪方式。Python 默认的 logging 模块提供了日志的记录方法。

日志级别

logging 提供了 5 个级别的日志,覆盖了绝大多数的使用场景。

  • DEBUG:调试信息。当诊断问题时使用。
  • INFO:正常信息。确认程序按预期运行。
  • WARNING:警告信息。表明已经发生了或者即将发生意外情况。
  • ERROR:错误信息。出现了严重的问题,程序的某些功能已经不能正常运行。
  • CRITICAL:重大错误信息。出现了严重的错误,程序已经不能继续执行。

简单的小例子

1
2
3
4
5
6
7
8
9
10
import logging


res = 1 + 1

logging.debug("Debug message...")
logging.info(f"The result is {res}")
logging.warning("Something unexpected!")
logging.error("Something wrong!")
logging.critical("Something dangerous!")

将会在终端打印出:

1
2
3
WARNING:root:Something unexpected!
ERROR:root:Something wrong!
CRITICAL:root:Something dangerous!

因为默认的日志级别为 WARNING,低于该级别的日志将不会输出。

日志格式配置

1
2
3
4
5
6
7
8
9
10
11
12
import logging


logging.basicConfig(filename="./tmp.log", level=logging.INFO, format="%(asctime)s %(levelname)s:%(message)s", datefmt="%Y-%m-%d %H:%M:%S")

res = 1 + 1

logging.debug("Debug message...")
logging.info(f"The result is {res}")
logging.warning("Something unexpected!")
logging.error("Something wrong!")
logging.critical("Something dangerous!")

将会产生一个 tmp.log 文件:

1
2
3
4
2019-11-03 10:24:13 INFO:The result is 2
2019-11-03 10:24:13 WARNING:Something unexpected!
2019-11-03 10:24:13 ERROR:Something wrong!
2019-11-03 10:24:13 CRITICAL:Something dangerous!

到此为止,已经基本掌握了 logging 模块的用法。但该包提供了更多的功能,为了充分利用它,需要掌握进阶日志教程