【问题标题】:How to print python logger info level如何打印python记录器信息级别
【发布时间】:2019-03-05 19:28:32
【问题描述】:

我想在命令行上运行 python3.7 脚本,并让 logger.info() 消息显示在标准输出上,就像 logger.warning() 一样。

这是我的代码:

import logging
logger = logging.getLogger(__name__)
print(logger.isEnabledFor(logging.INFO))
logger.setLevel(logging.INFO)
print(logger.isEnabledFor(logging.INFO))
logger.info('my info message')
logger.warn('my warning message')

预期输出:

False
True
my info message
my warning message

实际输出:

False
True
my warning message

示例:https://repl.it/repls/UnknownWideeyedPhase

【问题讨论】:

    标签: python-3.7


    【解决方案1】:

    在上面的示例中,您需要定义一个 Stream-Handler 来告诉记录器将日志发送到哪里。如果要将它们发送到标准输出(控制台输出),只需添加

    import sys
    logging.basicConfig(stream=sys.stdout)
    

    关于日志配置的更多细节,我建议阅读文档documentation

    附:你应该使用logger.warning,因为logger.warn 已被弃用

    【讨论】:

      【解决方案2】:

      这个问题在Logging setLevel is being ignored解决了

      但遵循决议:

      import logging
      logger = logging.getLogger(__name__)
      print(logger.isEnabledFor(logging.INFO))
      logging.basicConfig(level=logging.INFO, format='%(message)s')
      print(logger.isEnabledFor(logging.INFO))
      logger.info('my info message')
      logger.warning('my warning message')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-04
        • 1970-01-01
        • 1970-01-01
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多