【问题标题】:Python absl logging without timestamp module name没有时间戳模块名称的 Python absl 日志记录
【发布时间】:2020-01-08 22:49:57
【问题描述】:

我想知道是否可以只在 absl python 中记录 msg 字符串而没有时间戳和模块名称。 示例

I0108 23:40:57.153055 140614090106688 extractor.py:79] processing file: dfcsdf
I0108 23:40:57.162382 140614090106688 extractor.py:72] ['/topic/fdfgd', dfgsdf']
I0108 23:40:57.162861 140614090106688 extractor.py:79] processing file: f456546fd
I0108 23:40:57.171764 140614090106688 extractor.py:72] ['/topic/1', '/topic/2', '/topic/3']

是否有配置只记录如下消息

processing file: dfcsdf
['/topic/fdfgd', dfgsdf']
processing file: f456546fd
['/topic/1', '/topic/2', '/topic/3']

我知道我可以用控制台的打印替换日志记录或编写自定义记录器,我想知道它是否可以用于 absl 日志记录?

【问题讨论】:

    标签: python logging abseil absl-py


    【解决方案1】:

    将格式化程序设置为None

    您可以将格式化程序设置为None。这可能看起来有点棘手,因为它没有很好的记录(我必须阅读source code 以确保这是正确的),但以下工作:

    from absl import app
    from absl import logging
    
    
    def main(argv):
        logging.get_absl_handler().use_absl_log_file('log', "./FolderName")
    
        logging.get_absl_handler().setFormatter(None)
    
        logging.info('Info log')
        logging.warning('Warning log')
    
    if __name__ == '__main__':
        app.run(main)
    

    将格式化程序设置为None后,我的日志文件如下所示:

    信息日志

    警告日志

    自定义格式化程序

    话虽如此,实现自定义格式化程序并不难,而且我认为更优雅,而且它允许您自定义输出。您只需要覆盖format 函数:

    from absl import app
    from absl import logging
    from absl.logging import PythonFormatter
    
    class CustomPythonFormatter(PythonFormatter):
        def format(self, record):
            return super(PythonFormatter, self).format(record)
    
    def main(argv):
        logging.get_absl_handler().use_absl_log_file('log', "./Folder")
    
        logging.get_absl_handler().setFormatter(CustomPythonFormatter())
    
        logging.info('Info log')
        logging.warning('Warning log')
    
    if __name__ == '__main__':
        app.run(main)
    

    这给了我和以前一样的结果:

    信息日志

    警告日志

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      相关资源
      最近更新 更多