python覆盖getLogger()

时间:2018-02-05 14:25:28

标签: python python-3.x logging

在我的<my_module_name>模块中,我有这个:

import logging
import my_module_name.log
log = logging.getLogger(__name__)

这很好用,但我希望能够覆盖/log.py中的logging.getLogger(),以便我可以使用:

import my_module_name.log
log = my_module_name.log.getLogger(__name__)

1 个答案:

答案 0 :(得分:1)

如果您想拥有一个配置文件,可以选择几个选项。有基于ini文件的配置,基于dict配置的配置和基于代码的配置。我将在这里解释基于dict的配置。

在某个文件中定义日志记录conf。

CheckBox

然后,当您想在代码中记录某些内容时,只需实例化一个记录器对象。

logging_config = dict(
    version = 1,
    formatters = {
        'f': {'format':
              '%(asctime)s %(name)-12s %(levelname)-8s %(message)s'}
        },
    handlers = {
        'h': {'class': 'logging.StreamHandler',
              'formatter': 'f',
              'level': logging.DEBUG}
        },
    root = {
        'handlers': ['h'],
        'level': logging.DEBUG,
        },
)