我在 django 设置中的日志记录配置中用一个包罗万象的记录器替换了所有记录器,例如:
'loggers': {
'': {
'handlers': ['console'],
'level': 'DEBUG'
}
}
所以我猜测结果将与具有相同设置的 'django'
记录器完全相同。但我没有看到使用上述“catch-all”配置引发的错误的堆栈跟踪(特别是在请求时)。
如果我添加:
,它会再次打印正常'django': {
'handlers': ['null'],
'propagate': True
},
似乎'django'
记录器以某种方式完成了将回溯添加到日志的工作?
但是无论如何,事情会这样的原因是什么?为什么添加第二个代码片段时情况会发生变化?在我看来,故事的一部分我不知道。
(django 1.5)
最佳答案
我看到发生这种情况的唯一原因是 django
和/或 上的
记录器,并且您显式指定它会覆盖它。在 Django 1.5 中,与早期版本相比,您的 propagation
属性设置为 False
默认情况下 >django.requestssettings.py
中指定的配置可以与 Django 的默认配置合并,如所述 here .
通常最好不要进行传播,除非有特定原因需要覆盖 True
的默认值。 Django 自己的配置有时会在配置中显式指定 True
,在我看来,除了记录将要发生的情况之外,它没有其他任何用途。
您需要显示您正在使用的特定 Django 1.5 版本的完整配置,以确定您所看到的行为的确切原因。
关于python - Django 记录器 - 回溯不传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20600113/