我有一个具有以下结构的小型python项目-
Project
-- pkg01
-- test01.py
-- pkg02
-- test02.py
-- logging.conf
我计划使用默认的日志记录模块将消息打印到stdout和日志文件。要使用日志记录模块,需要进行一些初始化-
import logging.config
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('pyApp')
logger.info('testing')
目前,在开始记录消息之前,我会在每个模块中执行此初始化。是否可以只在一个地方执行一次初始化,以便通过记录整个项目来重复使用相同的设置?
package/__init__.py
。通常这不是您放置if __name__ == '__main__'
代码的地方。另外,prost的示例看起来像将在导入时无条件调用配置代码,这对我来说不合适。通常,除非在导入__main__时,否则日志配置代码应在一个地方完成,并且不应作为导入的副作用发生。
if __name__ == '__main__'
怎样?(如果情况如此,则没有明确提及)
fileConfig
在每个执行日志记录的模块中调用,除非if __name__ == '__main__'
所有逻辑模块中都有逻辑。如果软件包是库,则prost的答案不是一个好习惯,尽管它可能对您有用-除了添加以外,不应配置库软件包中的日志记录NullHandler
。