Python日志logging – 检查日志文件的位置?

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

即如果我这样做:

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

我在哪里可以find日志文件? 另外,当我打电话给:

 logging.getLogger(__name__) 

这与logging器如何performance/保存有关吗?

logging模块使用附加到logging器的处理程序来决定如何,何处,甚至是最终如何存储或显示消息。 您也可以将logging默认配置为写入文件。 你真的应该阅读文档 ,但是如果你调用logging.basicConfig(filename=log_file_name) ,其中log_file_name是你想要写入消息的文件的名字(注意,你必须在任何其他的logging之前这样做) ,那么记录到所有记录器的所有消息(除非稍后进行一些进一步的重新配置)将被写入那里。 请注意记录器设置的级别; 如果内存服务, info低于默认的日志级别,所以你必须在basicConfig的参数中包含level=logging.INFO以及消息最终在文件中。

至于你的问题的其他部分, logging.getLogger(some_string)返回一个Logger对象,从根记录器插入到层次结构中的正确位置,名称是some_string的值。 调用没有参数,它返回根记录器。 __name__返回当前模块的名称,所以logging.getLogger(__name__)返回一个Logger对象,其名称被设置为当前模块的名称。 这是一种常用的logging模式,因为它会导致记录器结构镜像代码的模块结构,这通常会使日志消息在调试时更加有用。

要获取简单文件记录器的日志位置,请尝试

 logging.getLoggerClass().root.handlers[0].baseFilename 

要查找日志文件位置,请尝试在您的环境中的Python shell中实例化log对象,并查看以下值:

log.handlers[0].stream