我有一个包含多个脚本 .py
的 python 3 项目。
main.py
、script1.py
、script2.py
、script3.py
、 logger.py
。 main.py
包含 3 个脚本/模块。
我创建了一个从日志记录模块继承的记录器类。目前,在每个 .py 模块中,我必须实例化记录器类并单独设置 loglevel/loggername/log 路径。
有没有办法在 main.py 中设置日志记录级别/记录器名称(或不需要)/日志路径,以便可以在该项目中传递相同的级别,而无需在每个脚本中单独设置它们?
最佳答案
当然有办法。不仅如此,它还是最佳实践方式。
Python 日志记录按记录器名称分层,因此名为“abc.def”的日志被视为名为“abc”的记录器的子记录。所有记录器都有一个名为“root”记录器的祖先。
因此,如果您想要(通常需要)集中式日志配置,您应该配置根记录器 logging.getLogger()
。
如果您愿意,您可以使用 logging.basicConfig
辅助函数轻松完成此操作。
然后您的所有其他记录器都将采用此配置。
如果您想要对某些日志进行特定配置,您可以有选择地配置它们,或者使用名称层次结构通过“家庭根”进行配置。
编辑:对于多个日志配置,您还可以拥有一个集中的 logging.conf
文件,如解释的 here .
关于python-3.x - 如何启动一次Python日志记录实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58768282/