• /
  • EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

record_exception (API del agente Python)

Sintaxis

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

Esta API ha quedado obsoleta. Utilice notice_error().

Descripción

Registra los detalles de una excepción de Python como un error.

De forma predeterminada, el agente Python solo informa excepciones no controladas. Utilice record_exception para registrar cualquier excepción de Python como un error, que luego se puede encontrar en la UI de New Relic. Si no se proporciona ningún parámetro, se utilizarán los detalles de la excepción que se está manejando actualmente.

Puede registrar hasta cinco excepciones distintas por transacción y hasta 20 excepciones en total en todas las transacciones por ciclo de recolección.

Cuando se llama a record_exception() en el contexto de una solicitud web de supervisión o una tarea en segundo plano, los detalles de la excepción se informarán en la aplicación a la que se informa la solicitud o tarea.

Si se llama fuera del contexto de una solicitud web de monitor o de una tarea en segundo plano, la llamada se ignorará a menos que se proporcione el argumento de palabra clave application y se proporcione un objeto de aplicación correspondiente a la aplicación en la que se debe registrar la excepción. Se puede obtener un objeto de aplicación adecuado utilizando la función newrelic.agent.application() .

Parámetros

Sugerencia

En casi todos los casos, record_exception no requerirá ningún parámetro.

Parámetro

Descripción

exc

objeto de clase

Opcional y poco usado. El tipo de excepción que se está manejando (un objeto de clase). Uno de los tres valores (exc, value y tb) devueltos por sys.exc_info(). Si desea pasar cualquiera de estos parámetros, los tres deben estar configurados y no se pueden configurar en None. Si solo pasa uno de estos valores, la llamada no funcionará.

value

int, cadena, otro

Opcional y poco usado. El parámetro de excepción. Uno de los tres valores (exc, value y tb) devueltos por sys.exc_info(). Si desea pasar cualquiera de estos parámetros, los tres deben estar configurados y no se pueden configurar en None. Si solo pasa uno de estos valores, la llamada no funcionará.

tb

objeto

Opcional y poco usado. Un objeto de rastreo que encapsula la stack de llamadas en el punto donde ocurrió originalmente la excepción. Uno de los tres valores (exc, value y tb) devueltos por sys.exc_info(). Si desea pasar cualquiera de estos parámetros, los tres deben estar configurados y no se pueden configurar en None. Si solo pasa uno de estos valores, la llamada no funcionará.

params

dict

Opcional. Atributos personalizados para agregar al evento de error (además de cualquier atributo personalizado ya agregado a la transacción). Si el modo de alta seguridad está habilitado, esto no funcionará.

ignore_errors

cadena

Opcional. Los errores a ignorar se pueden pasar en el formulario module:class. Útil cuando ciertos tipos de excepciones siempre deben ignorarse y nunca registrarse.

application

objeto de aplicación

Opcional. Si se llama fuera del contexto de una solicitud web de supervisión o una tarea en segundo plano, la llamada se ignorará a menos que se proporcione el objetoapplication .

Valores de retorno

Ninguno.

Ejemplos

Ejemplo sencillo de notificación de excepciones

En la gran mayoría de los casos, no será necesario pasar ningún parámetro. Simplemente llamaría a lo siguiente cuando desee informar una excepción:

newrelic.agent.record_exception()

Llamada con sys.exc_info() tuple y parámetro adicional

Un ejemplo de record_exception usando datos 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)

Ejemplo de devolución de llamada

Si necesita filtrar excepciones dinámicamente según el atributo de un tipo de excepción específico, puede proporcionar una función de devolución de llamada:

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 se va a ignorar la excepción, establezca el valor de retorno para el invocable en True. Devuelve False si la excepción nunca debe ignorarse independientemente de otras comprobaciones, y None si las comprobaciones posteriores y las reglas incorporadas deben determinar si la excepción debe ignorarse. Una devolución de llamada normalmente devolvería True o None.

Copyright © 2024 New Relic Inc.

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