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