所以,我终于想通了。
Module 1
如果将字典放在子模块(和 set Propagate: True
)中,这一切都很好。
MY_DICTIONARY = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)-8s %(asctime)s %(module)s %(process)d %(thread)d %(message)s',
'datefmt': '%a, %d %b %Y %H:%M:%S'
},
'standard': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s',
'datefmt': '%a, %d %b %Y %H:%M:%S'
},
'simple': {
'format': '%(asctime)s %(levelname)-8s %(message)s',
'datefmt': '%a, %d %b %Y %H:%M:%S'
}
#etc.
}
}
随后是以下调用:
logging.config.dictConfig(MY_DICTIONARY)
vmrunalllogger = logging.getLogger('VMRunAll_Python_Logger')
然后在模块 2(父模块)中,有这个:
logging.config.dictConfig(MY_DICTIONARY)
mylogger = logging.getLogger('RunAll_Logger')
我找不到显示两个不同模块记录到多个文件的具体示例,就像我正在做的那样,但是来自多个来源的信息如下所示:
- 来自 Python 文档
- Stackoverflow.com 上的另一个问题
- 以及食谱中的例子