アップグレード後Django 2.2
のバージョンから1.8
、私のアプリは、重複したエラーメッセージを受信し始めました。タイプに関係なく、すべてのエラーがADMINS
2回メールに送信されるようになりました。
私は自分のアプリを実行Heroku
してサポートを試しましたが、彼らはそれが私のアプリと関係があると判断しました。オンラインまたはで同様の問題を見つけることができませんでしたstackoverflow
。
私のログ設定
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
更新
ローカルサーバーでこれを複製することができ、設定を変更'propagate': True,
すると二重の電子メールが停止することに気づきFalse
ましたloggers
。ドキュメントから:
この伝播は、ロガーごとに制御できます。特定のロガーをその親に伝播させたくない場合は、この動作をオフにすることができます。
しかし、私はまだ私の最善の解決策がどうあるべきかわからない。に伝播する設定でFalse
は根本的な原因が解決されないことに注意してください。
LOGGING_CONFIG = None
私の設定に含める提案をしてくれた@gregoryに感謝します。ドキュメントによると:
これにより、Djangoのデフォルトのログの構成プロセスが無効になります。
最終的な作業コード:
import logging.config
LOGGING_CONFIG = None
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
logging.config.dictConfig(LOGGING)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加