Python logging 模块简述
Python logging 模块定义了为应用程序和库实现灵活的事件日志记录的函数和类。程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、警告等信息输出,Python 的 logging 模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志记录提供了一组便利功能,用于简单的日志记录用法。
-
使用 Python Logging 模块的主要好处是所有 Python 模块都可以参与日志记录
-
Logging 模块提供了大量具有灵活性的功能
日志等级(level) | 描述 |
---|---|
DEBUG | 最详细的日志信息,典型应用场景是 问题诊断 |
INFO | 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作 |
WARNING | 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的 |
ERROR | 由于一个更严重的问题导致某些功能不能正常运行时记录的信息 |
CRITICAL | 当发生严重错误,导致应用程序不能继续运行时记录的信息 |
日志级别等级排序:critical > error > warning > info > debug
级别越高打印的日志越少,反之亦然,即
-
debug : 打印全部的日志( notset 等同于 debug )
-
info : 打印 info, warning, error, critical 级别的日志
-
warning : 打印 warning, error, critical 级别的日志
-
error : 打印 error, critical 级别的日志
-
critical : 打印 critical 级别
案例测试
指定日志输出级别
默认级别
logging.debug("This's debug log info...") logging.info("This's info log info...") logging.warning("This's warning log info...") logging.error("This's error log info...") logging.critical("This's critical log info...") ''' WARNING:root:This's warning log info... ERROR:root:This's error log info... CRITICAL:root:This's critical log info... '''
使用 basicconfig() 设置日志级别
logging.debug("This's debug log info...") logging.info("This's info log info...") logging.warning("This's warning log info...") logging.error("This's error log info...") logging.critical("This's critical log info...") ''' DEBUG:root:This's debug log info... INFO:root:This's info log info... WARNING:root:This's warning log info... ERROR:root:This's error log info... CRITICAL:root:This's critical log info... '''
使用 basicconfig() 设置日志级别和目录
logging.basicConfig(level=logging.DEBUG,filename='loginfo.log') logging.debug("This's debug log info...") logging.info("This's info log info...") logging.warning("This's warning log info...") logging.error("This's error log info...") logging.critical("This's critical log info...")
说明:默认情况下日志落盘是append,如果每次执行程序直接覆写,需要设置mode
logging.basicConfig(level=logging.DEBUG, filename='loginfo.log', filemode='w')