• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

record_exception (Python API d'agent)

Syntaxe

newrelic.agent.record_exception(exc=None, value=None, tb=None, params={}, ignore_errors=[], application=None)

Cette API est obsolète. Veuillez utiliser notice_error().

Description

Enregistre les détails d'une exception Python en tant qu'erreur.

Par défaut, l'agent Python signale uniquement les exceptions non gérées. Utilisez record_exception pour enregistrer toute Python exception en tant qu’erreur, qui peut ensuite être trouvée dans l’ New Relic UI. Si aucun paramètre n'est fourni, les détails de l'exception en cours de traitement seront utilisés.

Vous pouvez enregistrer jusqu'à cinq exceptions distinctes par transaction et jusqu'à 20 exceptions au total pour toutes les transactions par cycle de collecte.

Lorsque record_exception() est appelé dans le contexte d'une demande Web de monitoring ou d'une tâche en arrière-plan, les détails de l'exception seront signalés par rapport à l' application à laquelle la demande ou la tâche est signalée.

Si appelé en dehors du contexte d'une requête Web de monitoring ou d'une tâche d'arrière-plan, l'appel sera ignoré à moins que l'argument de mot-clé application ne soit fourni et qu'un objet application correspondant à l' application par rapport à laquelle l'exception doit être enregistrée soit fourni. Un objet d'application approprié peut être obtenu à l'aide de la fonction newrelic.agent.application() .

Paramètres

Conseil

Dans presque tous les cas, record_exception ne nécessitera aucun paramètre.

paramètres

Description

exc

objet de classe

Facultatif et rarement utilisé. Le type d'exception de l'exception en cours de traitement (un objet de classe). L'une des trois valeurs (exc, value et tb) renvoyées par sys.exc_info(). Si vous souhaitez transmettre l'un de ces paramètres, les trois doivent être définis et ne peuvent pas être définis sur None. Si vous ne transmettez qu'une seule de ces valeurs, l'appel ne fonctionnera pas.

value

int, chaîne, autre

Facultatif et rarement utilisé. Le paramètre d'exception. L'une des trois valeurs (exc, value et tb) renvoyées par sys.exc_info(). Si vous souhaitez transmettre l'un de ces paramètres, les trois doivent être définis et ne peuvent pas être définis sur None. Si vous ne transmettez qu'une seule de ces valeurs, l'appel ne fonctionnera pas.

tb

objet

Facultatif et rarement utilisé. Un objet de traceback qui encapsule la stack d’appels au point où l’exception s’est produite à l’origine. L'une des trois valeurs (exc, value et tb) renvoyées par sys.exc_info(). Si vous souhaitez transmettre l'un de ces paramètres, les trois doivent être définis et ne peuvent pas être définis sur None. Si vous ne transmettez qu'une seule de ces valeurs, l'appel ne fonctionnera pas.

params

dict

Facultatif. attribut personnalisé à ajouter à l'événement d'erreur (en plus de tout attribut personnalisé déjà ajouté à la transaction). Si le mode haute sécurité est activé, cela ne fonctionnera pas.

ignore_errors

chaîne

Facultatif. Les erreurs à ignorer peuvent être transmises sous la forme module:class. Utile lorsque certains types d'exceptions doivent toujours être ignorés et jamais enregistrés.

application

objet d'application

Facultatif. Si appelé en dehors du contexte d'une requête Web de monitoring ou d'une tâche d'arrière-plan, l'appel sera ignoré à moins que l' objetapplication ne soit fourni.

Valeurs de retour

Aucun.

Exemples

Exemple simple de signalement d'exceptions

Dans la grande majorité des cas, vous n'aurez pas besoin de passer de paramètres. Vous devez simplement appeler ce qui suit lorsque vous souhaitez signaler une exception :

newrelic.agent.record_exception()

Appel avec l'uplet sys.exc_info() et un paramètre supplémentaire

Un exemple de record_exception utilisant les données sys.exc_info() :

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)

Exemple d'utilisation du rappel

Si vous devez filtrer les exceptions de manière dynamique en fonction de l'attribut d'un type d'exception spécifique, vous pouvez fournir une fonction de rappel :

def _ignore_errors(exc, value, tb):
if instance(value, HTTPError):
if value.status == 404:
return True
newrelic.agent.record_exception(ignore_errors=_ignore_errors)

Si l'exception doit être ignorée, définissez la valeur de retour de l'appelable sur True. Renvoie False si l'exception ne doit jamais être ignorée, quelles que soient les autres vérifications, et None si les vérifications ultérieures et les règles intégrées doivent déterminer si l'exception doit être ignorée. Un rappel renverrait normalement soit True soit None.

Droits d'auteur © 2025 New Relic Inc.

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