2

メッセージログ用に Sentry をインストールしました。私は歩哨に慣れていないので、それがどのように機能するかわかりません。

ファイルに入れられたメッセージのみをログに記録しますlogger ("error something")か、それともエラーが発生しても自動的にログに記録しますか

私のビューにログステートメントを書いていないとします。例外が発生した場合、セントリーはそれをログに記録するか、セントリーのすべての例外をプログラムする必要があります

発生する可能性のある例外の種類がわからないため、コードを入力せずにすべてのエラーを自動的にログに記録する方法はありますか

4

1 に答える 1

7

Sentryは、すべての例外を自動的にキャッチしてログに記録します。(ロガーを使用して)ロギング自体に関しては、デフォルトではそれらをキャッチしません。設定する必要があります。

ここでロギングを設定する方法を見ることができます。警告:最初は難しいようです。

編集:公式ドキュメントからの抜粋(2018年7月26日):

ロギングとの統合: 標準ライブラリのロギングモジュールと統合し、すべてのERROR以上のメッセージを歩哨に送信するには、次の構成を使用できます。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'root': {
        'level': 'WARNING',
        'handlers': ['sentry'],
    },
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s '
                      '%(process)d %(thread)d %(message)s'
        },
    },
    'handlers': {
        'sentry': {
            'level': 'ERROR', # To capture more than ERROR, change to WARNING, INFO, etc.
            'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
            'tags': {'custom-tag': 'x'},
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'ERROR',
            'handlers': ['console'],
            'propagate': False,
        },
        'raven': {
            'level': 'DEBUG',
            'handlers': ['console'],
            'propagate': False,
        },
        'sentry.errors': {
            'level': 'DEBUG',
            'handlers': ['console'],
            'propagate': False,
        },
    },
}

使用法:ログの使用法は、Djangoの外部と同じように機能しますが、追加のデータにオプションのリクエストキーが追加されます。

logger.error('There was some crazy error', exc_info=True, extra={
    # Optionally pass a request and we'll grab any information we can
    'request': request,
})
于 2011-07-09T10:02:49.123 に答える