15

Sentry は、次のような例外に関連する追加データを検出できます。

ここに画像の説明を入力

独自のフィールドを使用して、Python (Django アプリ) からそのような例外をどのように発生させますadditional dataか?

4

5 に答える 5

14

ライブラリを使用して例外をログに記録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 エラー ダッシュボードの [追加データ] セクションに表示されます。

于 2013-10-16T21:59:53.600 に答える
2

次の 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
>>> 

引数を追加することで、データ フィールドを必要な数だけ追加できます。

于 2013-04-11T14:21:56.120 に答える
1

Sentry ハンドラーは、例外のメッセージをキャプチャするときにスクリーンショットにその情報を追加し、例外自体ではなくtracebackからその情報を取得します。

.capture()追加のキーワード引数を;に渡すことで、追加のフィールドを追加できます。たとえば、オブジェクトを渡すと、Django クライアントがこれを行います。request

現在、例外から取得される他のデータはありません。このような機能を追加するには、例外処理を自分で拡張する必要があります。

于 2013-04-11T14:38:54.530 に答える