一尘不染

Python日志记录-检查日志文件的位置?

linux

知道Python日志语句存储在哪里的方法是什么?

即如果我这样做:

import logging
log = logging.getLogger(__name__)
log.info('Test')

在哪里可以找到日志文件?另外,当我打电话时:

logging.getLogger(__name__)

这与记录器的行为/保存方式有某种关系吗?


阅读 661

收藏
2020-06-07

共1个答案

一尘不染

logging模块使用附加到记录器的处理程序来决定最终存储或显示消息的方式,位置或方式。您可以logging默认配置为也写入文件。您应该真正阅读过文档,但是如果您将要写入消息的文件的名称调用到logging.basicConfig(filename=log_file_name)哪里log_file_name(请注意,您必须在logging调用其他任何文件之前先执行此操作),然后所有消息都会记录到所有记录器中(除非稍后会进行一些进一步的重新配置)。请注意记录器设置为什么级别;如果有内存,info则低于默认日志级别,因此您还必须level=logging.INFO将参数包含在内,以使basicConfig消息最终出现在文件中。

至于问题的另一部分,则logging.getLogger(some_string)返回一个Logger对象,该对象从root记录器插入到层次结构中的正确位置,名称为的值some_string。调用时不带参数,它将返回根记录器。
__name__返回当前模块的名称,因此logging.getLogger(__name__)返回Logger名称设置为当前模块名称的对象。这是与一起使用的常见模式logging,因为它会使记录器结构镜像您代码的模块结构,这通常使调试时记录消息更加有用。

2020-06-07