哪个模块应该包含logging.config.dictConfig(my_dictionary)? my_dictionary怎么样?

时间:2013-07-29 22:14:29

标签: python logging dictionary module multiple-files

这是所有Python。我还在学习......

我为我的Python应用程序编写了两个模块:Module1Module2。 我需要将我的日志记录结果发送到三个不同的文件。 Module1发送至setup.logsetupdetails.log个文件,Module2发送至runall.log Module2是我运行的应用程序。其中包含一个调用Module1的import语句。

因为我已经在my_dictionary中配置了我的日志记录,其中一个模块应该包含字典?哪个模块应包含logging.config.dictConfig(my_dictionary)函数?

您是否知道我能找到一个好的脚本,并举例说明如何使用dictConfig

2 个答案:

答案 0 :(得分:4)

所以,我终于想通了。

如果将字典放在子模块Module 1中(并设置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')

我找不到具体的例子,显示两个不同的模块记录到我正在做的多个文件,但来自多个来源的信息如下:

  1. From the Python documentation
  2. Another question on Stackoverflow.com
  3. And the examples of in the cookbook

答案 1 :(得分:2)

对于dictConfig:

import logging.config
logging.config.dictConfig() #Your method.

就您需要做的事情而言,如果您发布了一些代码,可能会更容易。

Some documentation

An Example