構文
newrelic.agent.record_exception(exc=None, value=None, tb=None, params={}, ignore_errors=[], application=None)
このAPIは非推奨になりました。 notice_error()
を使用してください。
説明
Pythonの例外の詳細をエラーとして記録します。
デフォルトでは、Pythonエージェントは未処理の例外のみを報告します。 record_exception
を使用して、Python例外をエラーとして記録します。これは、NewRelicUIで見つけることができます。パラメーターが指定されていない場合は、現在処理されている例外の詳細が使用されます。
トランザクションごとに最大5つの異なる例外を記録することができます。 また、 ハーベストサイクルごとにすべてのトランザクションの合計で最大20の例外を記録することができます。 。
監視対象のWeb要求またはバックグラウンドタスクのコンテキスト内でrecord_exception()
が呼び出されると、要求またはタスクが報告されているアプリケーションに対して例外の詳細が報告されます。
監視対象のWeb要求またはバックグラウンドタスクのコンテキスト外で呼び出された場合、 application
キーワード引数が指定され、例外が記録されるアプリケーションに対応するアプリケーションオブジェクトが指定されない限り、呼び出しは無視されます。 newrelic.agent.application()
関数を使用して、適切なアプリケーションオブジェクトを取得できます。
パラメーター
ヒント
ほとんどすべての場合、 record_exception
はパラメータを必要としません。
パラメータ | 説明 |
---|---|
クラスオブジェクト | オプションで、めったに使用されません。処理される例外の例外タイプ(クラスオブジェクト)。 |
整数、文字列、その他 | オプションで、めったに使用されません。例外パラメータ。 |
物体 | オプションで、めったに使用されません。例外が最初に発生したポイントでコールスタックをカプセル化するトレースバックオブジェクト。 |
ディクト | オプション。エラー イベントに追加するカスタム属性 (トランザクションに既に追加されているカスタム属性に加えて)。高セキュリティ モードが有効になっている場合、これは機能しません。 |
ストリング | オプション。無視するエラーは、 |
アプリケーションオブジェクト | オプション。監視対象のWeb要求またはバックグラウンドタスクのコンテキスト外で呼び出された場合、 |
戻り値
なし。
例
例外の報告の簡単な例
ほとんどの場合、パラメタを渡す必要はありません。例外を報告したい場合は、次のように呼び出せばよいでしょう。
newrelic.agent.record_exception()
sys.exc_info()タプルと追加パラメータを用いたコール
sys.exc_info()
データを使用したrecord_exception
の例:
def complex_ignore_errors(exc, val, tb): # do some logic here return False
newrelic.agent.record_exception(params={'my_special_exception': True}, ignore_errors=complex_ignore_errors)
コールバックの使用例
特定の例外タイプの属性に基づいて例外を動的にフィルタリングする必要がある場合は、コールバック関数を指定できます。
def _ignore_errors(exc, value, tb): if instance(value, HTTPError): if value.status == 404: return True
newrelic.agent.record_exception(ignore_errors=_ignore_errors)
例外を無視する場合は、callableの戻り値をTrue
に設定してください。他のチェックに関係なく例外を無視しない場合はFalse
を返し、後続のチェックと組み込みルールで例外を無視するかどうかを決定する必要がある場合はNone
を返します。コールバックは通常、 True
またはNone
のいずれかを返します。