如何配置Django中的日志记录,以便在默认情况下对所有WARNING
和更高的消息使用Sentry,但当我运行管理命令时,将其降低到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',
},
},
一种非常粗糙的方法:修改
manage.py
在环境中添加一些内容,并在设置模块中检测到这一点。在在
manage.py
中:在设置模块中:
^{pr2}$这也会在运行Celery workers时添加记录器,但我认为守护进程没有stdout,所以这无关紧要?在
您可以对管理命令使用不同的设置
./manage.py my_task settings=proj.settings.management
,对吗?所以你只需覆盖日志记录部分并从原始设置文件“继承”其余部分。。。还是我在你的问题上漏掉了一点?在相关问题 更多 >
编程相关推荐