django がログを処理する方法について少し混乱しています。私の設定には、ロガー用の次の設定があります。
ロギング設定
LOGGING = {
...
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': LOG_BASE_DIRECTORY + '/django.log',
'maxBytes': LOGFILE_SIZE,
'backupCount': LOGFILE_COUNT,
'formatter': 'verbose'
},
'mail_admins': {
'level': 'ERROR',
#'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django': {
'handlers': ['file','mail_admins'],
'level': 'INFO',
'propagate': True,
},
'app1': {
'handlers': ['file','mail_admins'],
'level': 'DEBUG',
'propagate': True,
},
...
},
}
ご覧のとおり、django とアプリのログ、file と mail_admins 用に定義された 2 つのハンドラーがあります。ファイルのログ レベルは debug です。したがって、デバッグ以上のすべてのログがこのハンドラーを使用すると仮定します。mail_admins のレベルはエラーです。私が見ている問題は、電子メール ハンドラーの実行中に 500 エラーが発生し、メールが送信された場合、ファイルにログが記録されないことです。