我想使用dictConfig,但是文档有点抽象。在哪里可以找到dictConfig所用字典的具体,可复制和粘贴的示例?

最佳答案

来吧!相应的文档引用为 configuration-dictionary-schema

LOGGING_CONFIG = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'standard': {
            'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
        },
    },
    'handlers': {
        'default': {
            'level': 'INFO',
            'formatter': 'standard',
            'class': 'logging.StreamHandler',
            'stream': 'ext://sys.stdout',  # Default is stderr
        },
    },
    'loggers': {
        '': {  # root logger
            'handlers': ['default'],
            'level': 'WARNING',
            'propagate': False
        },
        'my.packg': {
            'handlers': ['default'],
            'level': 'INFO',
            'propagate': False
        },
        '__main__': {  # if __name__ == '__main__'
            'handlers': ['default'],
            'level': 'DEBUG',
            'propagate': False
        },
    }
}
用法:
# Run once at startup:
logging.config.dictConfig(LOGGING_CONFIG)

# Include in each module:
log = logging.getLogger(__name__)
log.debug("Logging is configured.")
如果您从第三方软件包中看到太多日志,请确保在导入第三方软件包之前使用logging.config.dictConfig(LOGGING_CONFIG)运行此配置。
要使用日志记录过滤器向每个日志消息添加其他自定义信息,请考虑使用this answer

10-06 04:11