如何在Python中临时更改记录消息的格式?

发布于 2021-01-29 18:14:26

在Python中(通过日志记录模块)临时更改日志记录消息格式的最简单方法是什么?

目标是具有某种标准的消息格式,同时能够临时添加有关正在读取的某些文件的信息(如文件名);当不再读取文件时,消息格式应恢复为其默认值。产生该消息的程序
知道正在读取哪个文件,因此,如果其消息自动包含相关的文件名(错误消息将是:“ 读取文件 ***时出错:…”,而不是该消息),将是很好的选择。
“错误:…”)。

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这是一个简单的解决方案,可以从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可以根据问题的要求动态地将其设置为正在处理的文件)。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看