廃止の警告を記録するようにDjangoのログを設定しようとしています。私は通常、このようなフォーマッタを持たないか、コンソールに出力します。それはテストするだけで動作しないことを示しています。ここで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',
},
},
}
それは出力 "これは動作します!" 必要がありますしかし、それは非推奨の警告をヒットしたときには表示されません。私は、だから私は、通常のDjangoの警告を見ることができます
パイソン-Wd
にこれらのアラートでのpythonを実行していますが、私はそれらを検出するためにロガーを取得することはできません。どうやら
をsimplefilter等価例外が発生します。これを望んでいない場合は、Djangoのログを静かに表示してこの警告に従うことができます https://stackoverflow.com/questions/40752766/how-to-log-python-warnings-in-a-django-log -ファイル – Chaos