Sentry は、次のような例外に関連する追加データを検出できます。
独自のフィールドを使用して、Python (Django アプリ) からそのような例外をどのように発生させますadditional data
か?
ライブラリを使用して例外をログに記録logging
するため、コードを少しデバッグした後、次のextra
パラメーターに気付きました。
import logging
logger = logging.getLogger('my_app_name')
def do_something():
try:
#do some stuff here that might break
except Exception, e:
logger.error(e, exc_info=1, extra={'extra-data': 'blah', })
exc_info=1 を渡すことは、 を呼び出すことと同じlogger.exception
です。ただし、パラメーターexception()
を使用するために必要な kwargs は受け入れませんextra
。
これらの値は、Sentry エラー ダッシュボードの [追加データ] セクションに表示されます。
次の 2 つの方法のいずれかを試すことができます。
>>> # Raise the exception with the data you want.
>>> raise Exception('extra information')
Traceback (most recent call last):
File "<pyshell#64>", line 1, in <module>
raise Exception('extra information')
Exception: extra information
>>> # Catch an exception and add extra arguments.
>>> try:
raise Exception()
except Exception as error:
error.args += ('extra information',)
raise
Traceback (most recent call last):
File "<pyshell#68>", line 2, in <module>
raise Exception()
Exception: extra information
>>>
引数を追加することで、データ フィールドを必要な数だけ追加できます。
Sentry ハンドラーは、例外のメッセージをキャプチャするときにスクリーンショットにその情報を追加し、例外自体ではなくtracebackからその情報を取得します。
.capture()
追加のキーワード引数を;に渡すことで、追加のフィールドを追加できます。たとえば、オブジェクトを渡すと、Django クライアントがこれを行います。request
現在、例外から取得される他のデータはありません。このような機能を追加するには、例外処理を自分で拡張する必要があります。