我试图让Python记录日志,尽管已经阅读了logging docs和{a2},但我不理解它的行为。在
我设置了全局日志级别,然后尝试记录一些内容:
logger = logging.getLogger()
print("Initially should be warn: %d" % logger.getEffectiveLevel())
logger.setLevel(logging.DEBUG)
print("Logger level: %d" % logger.getEffectiveLevel())
logger.info("Maybe I am printed?")
但是运行python my_script.py
只会打印:
但是,如果我添加一个logging.info
调用,例如
然后显示日志记录:
Initially should be warn: 30
Logger level: 10
INFO:root:I am printed
INFO:root:Maybe I am printed?
logging.info
在做什么?在
第一个示例实际上会警告您,对于logger“root”(see here))找不到处理程序。这是因为,正如建议的那样,您没有为
logger
定义任何处理程序。在以下是
logging.info
的实现:{3}处理程序初始化时,也可以看到下面的处理程序}在初始化^时也会注意到}。在
对
logging.info
的调用正在配置日志处理程序和格式化程序,以便它可以输出日志。如果您想自己执行此操作,以下代码将设置它:本教程的configuring logging部分提供了有关配置日志记录的更多详细信息。在
logging.info
调用设置日志的代码在github.com中可用。它本质上只是在不存在处理程序的情况下创建处理程序。在相关问题 更多 >
编程相关推荐