如何在Python中临时更改记录消息的格式?
在Python中(通过日志记录模块)临时更改日志记录消息格式的最简单方法是什么?
目标是具有某种标准的消息格式,同时能够临时添加有关正在读取的某些文件的信息(如文件名);当不再读取文件时,消息格式应恢复为其默认值。产生该消息的程序 不
知道正在读取哪个文件,因此,如果其消息自动包含相关的文件名(错误消息将是:“ 读取文件 ***时出错:…”,而不是该消息),将是很好的选择。
“错误:…”)。
-
这是一个简单的解决方案,可以从Vinay Sajip自己的HOWTO中推论得出;它基本上使用以下命令更新日志记录格式化程序
setFormatter()
:import logging logger = logging.getLogger() # Logger logger_handler = logging.StreamHandler() # Handler for the logger logger.addHandler(logger_handler) # First, generic formatter: logger_handler.setFormatter(logging.Formatter('%(message)s')) logger.error('error message') # Test # New formatter for the handler: logger_handler.setFormatter(logging.Formatter('PROCESSING FILE xxx - %(message)s')) logger.error('error message') # Test
正确地产生:
error message PROCESSING FILE xxx - error message
(
xxx
可以根据问题的要求动态地将其设置为正在处理的文件)。