知道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