【发布时间】:2017-06-25 22:52:55
【问题描述】:
我正在尝试设置 Django 日志记录以记录弃用警告。我通常不会有这样的格式化程序或将其输出到控制台,这只是为了测试并显示它不起作用。
这是我的代码:
def is_deprecated(record):
if record.exc_info:
exc_type, exc_value = record.exc_info[:2]
print(exc_value)
if isinstance(exc_value, DeprecationWarning) or isinstance(exc_value, PendingDeprecationWarning):
return True
return False
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'stuff': {
'format': 'This works!'
}
},
'filters': {
'is_deprecated': {
'()': 'django.utils.log.CallbackFilter',
'callback': is_deprecated,
},
},
'handlers': {
'console': {
'filters': ['is_deprecated'],
'class': 'logging.StreamHandler',
'formatter': 'stuff',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'INFO',
},
},
}
它应该输出“这有效!”当它遇到弃用警告时,它不会。我正在运行带有这些警报的python
python -Wd
所以我可以看到常规的 Django 警报,但我无法让记录器检测到它们。
【问题讨论】: