私は、django エラー メッセージを処理するために歩哨を展開している最中です。を使用しLOGGING
た場合にのみログに記録するようにdjango の設定を構成しました。DEBUG = False
'filters': ['require_debug_false']
次の例のように手動で django ビューにエラーを記録すると、エラーは正常にフィルタリングされ、sentry に送信されません。
import logging
logger = logging.getLogger(__name__)
def view_name(request):
logger.error('An error message')
...
ただし、assert
次の例のようにステートメントを使用すると、フィルタリングされず、sentry に送信されます。
import logging
logger = logging.getLogger(__name__)
def view_name(request):
assert False, 'An error message'
...
また、同じフィルターを使用するハンドラーにassert
ステートメントが送信されないことにも注意してください。mail_admins
assert
エラーがセントリーに送信されるのを防ぐのを手伝ってもらえますDEBUG = True
か?
私が使用しているパッケージのバージョンは次のとおりです。
Django==1.6.7
raven==5.1.1
そして、ここに私のsettings.pyの関連部分があります:
DEBUG = True
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'formatters': {
'simple': {
'format': '%(levelname)s %(asctime)s %(message)s'
},
},
'handlers': {
'console': {
'level': 'WARNING',
'filters': ['require_debug_false'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
},
'sentry': {
'level': 'WARNING',
'filters': ['require_debug_false'],
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
},
},
'loggers': {
'': {
'handlers': ['console', 'mail_admins', 'sentry'],
'level': 'WARNING',
'propagate': False,
},
},
}