python - Django 记录器 - 回溯不传播

标签 python django logging

我在 django 设置中的日志记录配置中用一个包罗万象的记录器替换了所有记录器,例如:

'loggers': {
    '': {
        'handlers': ['console'],
        'level': 'DEBUG'
    }
}

所以我猜测结果将与具有相同设置的 'django' 记录器完全相同。但我没有看到使用上述“catch-all”配置引发的错误的堆栈跟踪(特别是在请求时)。

如果我添加:

,它会再次打印正常
'django': {
    'handlers': ['null'],
    'propagate': True
},

似乎'django'记录器以某种方式完成了将回溯添加到日志的工作?

但是无论如何,事情会这样的原因是什么?为什么添加第二个代码片段时情况会发生变化?在我看来,故事的一部分我不知道。

(django 1.5)

最佳答案

我看到发生这种情况的唯一原因是 django 和/或 上的 propagation 属性设置为 False默认情况下 >django.requests 记录器,并且您显式指定它会覆盖它。在 Django 1.5 中,与早期版本相比,您的 settings.py 中指定的配置可以与 Django 的默认配置合并,如所述 here .

通常最好不要进行传播,除非有特定原因需要覆盖 True 的默认值。 Django 自己的配置有时会在配置中显式指定 True,在我看来,除了记录将要发生的情况之外,它没有其他任何用途。

您需要显示您正在使用的特定 Django 1.5 版本的完整配置,以确定您所看到的行为的确切原因。

关于python - Django 记录器 - 回溯不传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20600113/

相关文章:

python - matplotlib 3D 带状图

python - 对非结构化列表中的日期字符串和关联值的数据进行格式化

javascript - 无法让 JavaScript 在我的网站上运行; Django 民意调查

python - Django,使用shell从表单集中的字段中获取首字母数据

Django Nginx Docker Gunicorn 无法访问

java - Junit 测试方法的日志输出是否正确?

python - Fudge:@patch 当 from X import Y'ing 而不是 import X 时不起作用?

python - 窗口错误:[Error123] while accessing a window directory

java - 对于记录哪种模式比较好

java - Spring HandlerInterceptorAdapter postHandle 有保证吗?