0

Django プロジェクトのロギングを構成しています。設定は次のとおりです。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            # 'filters': [],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        '': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"

'filters': []コメントアウトすると、エラーはコンソールに記録されません。その行のコメントを外すと、すべてが期待どおりに機能します。

Python の logging.config ドキュメントloggingでは、ハンドラーではオプションであると信じています。

何が起きてる?

4

1 に答える 1

0

ロガー辞書のキーを見逃しているようです。私は次の辞書を使用しており、正常に動作しています。

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        'class': 'django.utils.log.AdminEmailHandler',
    }
},
'loggers': {
    'django.request': {
        'handlers': ['mail_admins'],
        'level': 'ERROR',
        'propagate': True,
    }
}
}
于 2012-05-28T08:36:26.693 に答える