Python—logging模块使用教程
简单用法
日志等级
级别 |
何时使用 |
DEBUG |
细节信息,仅当诊断问题时适用。 |
INFO |
确认程序按预期运行 |
WARNING |
表明有已经或即将发生的意外(例如:磁盘空间不足)。程序仍按预期进行 |
ERROR |
由于严重的问题,程序的某些功能已经不能正常执行 |
CRITICAL |
严重的错误,表明程序已不能继续执行 |
控制台输出日志
import logging
logging.warning('Watch out!')
logging.info('I told you so')
将日志保存到文件并且设置时间和输出格式
import logging
# 保存文件为example.log,记录等级为DEBUG,即只记录DENBUG及以上的日志
# 输出格式为 2019-19-06 18:47:06 - WARNING - And this, too
logging.basicConfig(
filename='example.log',
filemode='w',
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%Y-%d-%d %H:%M:%S'
)
logging.debug('This message should go to the log file')
logging.info('So shoul this')
logging.warning('And this, too')
参数解释
-
filename
: 日志文件路径
-
filemode
: 记录日志文件的模式,w
为每次启动程序都创建一个全新的文件记录, a
表示追加到文件末尾, 默认为a
-
level
: 记录日志的等级
-
format
: 日志输出的格式
-
datefmt
: 日志输出时间的格式
使用配置文件配置日志
[loggers]
# 配置日志对象名, 默认为root
keys=root, poj
[handlers]
# 日志配置名对象名
keys=writeFileHandlers
[formatters]
# 日志输出格式对象名
keys=writeFileFormatters
[logger_root]
level=DEBUG
handlers=writeFileHandlers
[logger_poj]
level=DEBUG
handlers=writeFileHandlers
qualname=writeFileFormatters
propagate=0
[logger_leetcode]
level=DEBUG
handlers=writeFileHandlers
qualname=writeFileFormatters
propagate=0
[handler_writeFileHandlers]
# 设置writeFileHandlers对象的配置
class=FileHandler
level=DEBUG
formatter=writeFileFormatters
# 记录在文件中,以追加的形式
args=("demo.log", "a")
[formatter_writeFileFormatters]
设置writeFileHandlers对象的输出配置
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%d-%m %H:%M:%S
使用配置文件
import logging.config
# 加载配置文件
logging.config.fileConfig('logging.conf')
# 获取日志对象名为poj的
logger = logging.getLogger("poj")
logger.debug('This message should go to the log file')
logger.info('So shoul this')
logger.warning('And this, too')