如何在 Django 中配置日志记录以默认使用 Sentry 来处理所有WARNING
和更高级别的消息,但是当我运行管理命令时将其降低INFO
并添加控制台记录器?
在正常操作中(通过 mod_python 或 uWSGI 运行站点),我只关心WARNING
和更高。但是,我们有一些通过 cronjobs 运行的管理命令,我也想INFO
在日志文件中收集它们的消息(在管理命令中,但也在更深层次的代码中)。一些管理命令来自外部库,我不希望更改它们(在那里添加额外的初始化)。理想情况下,我想在设置模块中检测我们是通过manage.py
还是通过 WSGI 运行的。
LOGGING
我当前字典的相关部分:
'root': {
'level': 'WARNING',
'handlers': ['sentry'],
},
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
}.
'sentry': {
'level': 'WARNING',
'class': 'raven.contrib.django.handlers.SentryHandler',
},
},