首页 > 解决方案 > python logging - “root”dict键有什么作用?

问题描述

我正在将 Sentry 集成到我的 Django 项目中以记录错误,他们推荐的入门日志配置如下所示:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'root': {
        'level': 'WARNING',
        'handlers': ['sentry'],
    },
    ...
}

现在,我习惯于在“logging”键中列出我的记录器并分配处理程序,如下所示:

'loggers': {
    '': {
        'handlers': ['console', 'mail_admins'],
        'level': 'INFO',
    },
}

通过这种方式,我捕获所有记录器的输出(名称''捕获所有)并控制我的处理程序。

但是,将root密钥放入日志记录层次结构有什么作用?我在 python 文档中找不到答案。

从我所看到的情况来看,它只是使用单个sentry记录器禁用了我所有调整过的记录器。我不再在控制台等中看到我的错误。

但是,如果我忽略哨兵root建议并在这里添加记录器

'loggers': {
    '': {
        'handlers': ['console', 'mail_admins', 'sentry'],
        'level': 'INFO',
    },
}

我所有的三个记录器开始和谐地一起工作。

所以我不明白root。它有什么作用?

标签: pythonloggingsentry

解决方案


root - 这将是根记录器的配置。配置的处理将与任何记录器一样,除了传播设置不适用。

文档

还有更多信息stackoverflow


推荐阅读