• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

record_exception (PythonエージェントAPI)

構文

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はパラメータを必要としません。

パラメータ

説明

exc

クラスオブジェクト

オプションで、めったに使用されません。処理される例外の例外タイプ(クラスオブジェクト)。 sys.exc_info()から返された3つの値( excvalue 、およびtb )のいずれか。これらのパラメータのいずれかを渡す場合は、3つすべてを設定する必要があり、 Noneに設定することはできません。これらの値の1つだけを渡すと、呼び出しは機能しません。

value

整数、文字列、その他

オプションで、めったに使用されません。例外パラメータ。 sys.exc_info()から返された3つの値( excvalue 、およびtb )のいずれか。これらのパラメータのいずれかを渡す場合は、3つすべてを設定する必要があり、 Noneに設定することはできません。これらの値の1つだけを渡すと、呼び出しは機能しません。

tb

物体

オプションで、めったに使用されません。例外が最初に発生したポイントでコールスタックをカプセル化するトレースバックオブジェクト。 sys.exc_info()から返された3つの値( excvalue 、およびtb )のいずれか。これらのパラメータのいずれかを渡す場合は、3つすべてを設定する必要があり、 Noneに設定することはできません。これらの値の1つだけを渡すと、呼び出しは機能しません。

params

ディクト

オプションです。エラーイベントに追加するカスタム属性(トランザクションに既に追加されているカスタム属性に加えて)。 ハイセキュリティモード が有効になっている場合、これは機能しません。

ignore_errors

ストリング

オプション。無視するエラーは、 module:classの形式で渡すことができます。特定の種類の例外を常に無視し、記録しないようにする必要がある場合に便利です。

application

アプリケーションオブジェクト

オプション。監視対象のWeb要求またはバックグラウンドタスクのコンテキスト外で呼び出された場合、 applicationオブジェクトが提供されない限り、呼び出しは無視されます。

戻り値

なし。

例外の報告の簡単な例

ほとんどの場合、パラメタを渡す必要はありません。例外を報告したい場合は、次のように呼び出せばよいでしょう。

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のいずれかを返します。

Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.