简体   繁体   English

Python日志dictConfig中的常见日志记录器设置

[英]Common logger settings in Python logging dictConfig

I use logging.config.dictConfig in my python application: 我在python应用程序中使用logging.config.dictConfig

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,

    'formatters': {
        'verbose': {
            """ MY_FORMATTER_SETTINGS """
        },
    },

    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/var/log/mylogger.log',
            'formatter': 'verbose'
        },
    },

    'loggers': {  
        'logger1': {
            'handlers': ['file'],
            'level': 'DEBUG',
        },
        'logger2': {
            'handlers': ['file'],
            'level': 'DEBUG',
        },
       'logger3': {
            'handlers': ['file'],
            'level': 'DEBUG',
        },  
        'logger4': {
            'handlers': ['file'],
            'level': 'DEBUG',
        },  
    }
}

logging.config.dictConfig(LOGGING)

Then I create loggers in some modules via logger = logging.getLogger("logger1") etc, and use them, for example logger.info("Some info") , without any additional configuration. 然后,我通过logger = logging.getLogger("logger1")等在某些模块中创建logger = logging.getLogger("logger1") ,并使用它们,例如logger.info("Some info") ,而无需进行任何其他配置。 I like it, but only thing I want to optimize is loggers setting, by providing some common(or default?) value for all loggers. 我喜欢它,但我只是想优化的东西是loggers设置,通过为所有记录器的一些常见(或默认?)值。 Is it possible? 可能吗?

What happens if you define a root logger in your "loggers" section? 如果在“记录器”部分中定义了根记录器,会发生什么情况?

'loggers': {
        #root logger  
        '': {
            'handlers': ['file'],
            'level': 'DEBUG',
        },
        # other loggers
        ...
}

The root logger contains the default log settings, and specifiy additional loggers for the special cases. 根记录器包含默认的日志设置,并为特殊情况指定其他记录器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM