美文网首页
Python日志记录:在配置文件中指定日志格式化程序的转换器属性

Python日志记录:在配置文件中指定日志格式化程序的转换器属性

作者: PathonDiss | 来源:发表于2019-10-16 14:18 被阅读0次

    问题引发

    我想在我的日志文件中将所有时间戳记为UTC时间戳记。通过代码指定时,将执行以下操作:

    Python日志记录:在配置文件中指定日志格式化程序的转换器属性
    import logging
    import time
    myHandler = logging.FileHandler('mylogfile.log', 'a')
    formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(name)-15s:%(lineno)4s: %(message)-80s')
    formatter.converter = time.gmtime
    myHandler.setFormatter(formatter)
    myLogger = logging.getLogger('MyApp')
    myLogger.addHandler(myHandler)
    myLogger.setLevel(logging.DEBUG)
    myLogger.info('here we are')
    

    我想从上面的“ in-code”配置转移到基于配置文件的机制。

    这是格式化程序的配置文件部分:

    小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编。且我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687

    Python日志记录:在配置文件中指定日志格式化程序的转换器属性
    import logging
    import time
    myHandler = logging.FileHandler('mylogfile.log', 'a')
    formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(name)-15s:%(lineno)4s: %(message)-80s')
    formatter.converter = time.gmtime
    myHandler.setFormatter(formatter)
    myLogger = logging.getLogger('MyApp')
    myLogger.addHandler(myHandler)
    myLogger.setLevel(logging.DEBUG)
    myLogger.info('here we are')
    

    我想从上面的“ in-code”配置转移到基于配置文件的机制。

    这是格式化程序的配置文件部分:

    image.png
    [handler_MyLogHandler]
    args=("mylogfile.log", "a",)
    class=FileHandler
    level=DEBUG
    formatter=simpleFormatter
    

    现在,如何在上一节中指定转换器属性(time.gmtime)?

    编辑:上面的配置文件因此被加载:

    logging.config.fileConfig('myLogConfig.conf')
    
    Python日志记录:在配置文件中指定日志格式化程序的转换器属性

    解决方案

    遗憾的是,除了使用例如

    class UTCFormatter(logging.Formatter):
     converter = time.gmtime
    

    然后UTCFormatter在配置中使用。

    相关文章

      网友评论

          本文标题:Python日志记录:在配置文件中指定日志格式化程序的转换器属性

          本文链接:https://www.haomeiwen.com/subject/ohxumctx.html