我有一个小的Python项目,它具有以下结构 -
Project
-- pkg01
-- test01.py
-- pkg02
-- test02.py
-- logging.conf
我计划使用默认的日志记录模块将消息打印到标准输出和日志文件中。 要使用日志记录模块,需要进行一些初始化 -
import logging.config
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('pyApp')
logger.info('testing')
目前,我在每个模块开始记录消息之前都执行此初始化。是否可能只在一个地方执行此初始化,以便所有项目中的日志记录都重用相同的设置?
fileConfig
,除非所有模块中都有if __name__ == '__main__'
的逻辑。prost的回答对于库而言并不是最佳实践,尽管它可能适用于你——在库包中不应该配置日志记录,除非添加一个NullHandler
。 - Vinay Sajippackage/__init__.py
文件中。这通常不是你放置if __name__ == '__main__'
代码的位置。此外,Prost 的示例似乎会在导入时无条件地调用配置代码,这对我来说看起来不太对。通常,日志配置代码应该在一个地方完成,并且不应该作为导入的副作用发生,除非你正在导入__main__
。 - Vinay Sajip