6

django-sentry をインストールしたところ、例外が問題なくキャッチされます。ただし、logger.warning および logger.error への呼び出しは、何らかの理由で Sentry に保存されていません。

セントリーの実装:

import logging
from sentry.client.handlers import SentryHandler

logger = logging.getLogger()
# ensure we havent already registered the handler
if SentryHandler not in map(lambda x: x.__class__, logger.handlers):
    logger.addHandler(SentryHandler())
# Add StreamHandler to sentry's default so you can catch missed exceptions
logger = logging.getLogger('sentry.errors')
logger.propagate = False
logger.addHandler(logging.StreamHandler())

ロガー呼び出し:

logger.warning("Category is not an integer", exc_info=sys.exc_info(), extra={'url': request.build_absolute_uri()})

何か案は?ありがとう!

4

3 に答える 3

4

セントリー ストリーム ハンドラを にアタッチしていますlogging.getLogger('sentry.errors')。これは、sentry ストリーム ハンドラを使用する sentry.errors 以下にログを記録することを意味します。

しかし、ログ'my_app.something'はそこで終わらない! したがって、ほとんどすべてのログ メッセージが欠落しています。

解決策: ストリーム ハンドラーをルート ロガーにアタッチします: logging.getLogger('')

于 2011-09-05T11:30:26.503 に答える
3

追加してみてください:

logger.setLevel(logging.DEBUG)

logging.getlogger の後、開発環境で動作します。

于 2011-04-22T06:51:09.657 に答える
0

FileHandler を 'sentry.errors' ロガーに追加して、本番環境でエラーが含まれているかどうかを確認できます。ただし、実際には stdout をサーバー ログに書き込む必要があります。これを確認できます。

于 2011-06-14T07:04:05.367 に答える