Python Logger报KeyError: 'messages'错误,求排查及解决方法
问题解答
错误原因
这个错误和Jupyter Notebook无关,是日志格式配置的低级错误:Python日志模块的格式化字段中,用于输出日志消息的正确字段是%(message)s(单数形式),你写成了%(messages)s(多了一个s),导致日志系统找不到对应字段,抛出KeyError。
修正后的代码
import logging # 初始化日志器 logger = logging.getLogger() # 设置日志级别 logger.setLevel(logging.INFO) # 日志格式 - 修正字段名 formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') # 添加控制台输出处理器 stream_handler = logging.StreamHandler() stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) # 添加文件输出处理器 file_handler = logging.FileHandler('my.log') file_handler.setFormatter(formatter) logger.addHandler(file_handler)
验证效果
调用logger.info('hi')后,控制台会输出类似内容:
2024-05-20 15:30:00,123 - INFO - hi
同时my.log文件中也会写入相同格式的日志内容。
内容的提问来源于stack exchange,提问作者hjsg1010
相关产品推荐
相关产品推荐

