• /
  • EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

record_exception (API do agente Python)

Sintaxe

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

Esta API foi descontinuada. Por favor use notice_error().

Descrição

Registra detalhes de uma exceção Python como um erro.

Por padrão, o agente Python relata apenas exceções não tratadas. Use record_exception para registrar qualquer exceção do Python como um erro, que pode ser encontrado na interface do New Relic. Se nenhum parâmetro for fornecido, os detalhes da exceção que está sendo tratada no momento serão usados.

Você pode registrar até cinco exceções distintas por transação e até 20 exceções no total em todas as transações por ciclo de coleta.

Quando record_exception() é chamado no contexto de uma solicitação da Web de monitoramento ou de uma tarefa em segundo plano, os detalhes da exceção serão relatados no aplicativo ao qual a solicitação ou tarefa está sendo relatada.

Se chamada fora do contexto de uma solicitação da Web de monitoramento ou de uma tarefa em segundo plano, a chamada será ignorada, a menos que o argumento da palavra-chave application seja fornecido e um objeto de aplicativo correspondente ao aplicativo no qual a exceção deve ser registrada seja fornecido. Um objeto de aplicativo adequado pode ser obtido usando a função newrelic.agent.application() .

Parâmetro

Dica

Em quase todos os casos, record_exception não exigirá nenhum parâmetro.

Parâmetro

Descrição

exc

objeto de classe

Opcional e raramente usado. O tipo de exceção que está sendo tratada (um objeto de classe). Um dos três valores (exc, value e tb) retornados de sys.exc_info(). Se você quiser passar qualquer um desses parâmetros, todos os três devem ser definidos e não podem ser definidos como None. Se você passar apenas um desses valores, a chamada não funcionará.

value

int, string, outro

Opcional e raramente usado. O parâmetro de exceção. Um dos três valores (exc, value e tb) retornados de sys.exc_info(). Se você quiser passar qualquer um desses parâmetros, todos os três devem ser definidos e não podem ser definidos como None. Se você passar apenas um desses valores, a chamada não funcionará.

tb

objeto

Opcional e raramente usado. Um objeto traceback que encapsula a stack de chamadas no ponto onde ocorreu originalmente a exceção. Um dos três valores (exc, value e tb) retornados de sys.exc_info(). Se você quiser passar qualquer um desses parâmetros, todos os três devem ser definidos e não podem ser definidos como None. Se você passar apenas um desses valores, a chamada não funcionará.

params

dict

Opcional. atributo personalizado a ser adicionado ao evento de erro (além de qualquer atributo personalizado já adicionado à transação). Se o modo de alta segurança estiver ativado, isso não funcionará.

ignore_errors

corda

Opcional. Erros a serem ignorados podem ser passados no formato module:class. Útil quando certos tipos de exceções sempre devem ser ignorados e nunca registrados.

application

objeto de aplicativo

Opcional. Se chamada fora do contexto de uma solicitação da Web de monitoramento ou de uma tarefa em segundo plano, a chamada será ignorada, a menos que o objetoapplication seja fornecido.

Valores de retorno

Nenhum.

Exemplos

Exemplo simples de reportar exceções

Na grande maioria dos casos, você não precisará passar nenhum parâmetro. Você apenas chamaria o seguinte quando quiser relatar uma exceção:

newrelic.agent.record_exception()

Chame com tupla sys.exc_info() e parâmetro adicional

Um exemplo de record_exception usando dados 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)

Exemplo usando retorno de chamada

Se precisar filtrar exceções dinamicamente com base no atributo de um tipo de exceção específico, você pode fornecer uma função de retorno de chamada:

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

Se a exceção for ignorada, defina o valor de retorno do chamável como True. Retorne False se a exceção nunca deve ser ignorada, independentemente de quaisquer outras verificações, e None se verificações subsequentes e regras integradas devem determinar se a exceção deve ser ignorada. Um retorno de chamada normalmente retornaria True ou None.

Copyright © 2024 New Relic Inc.

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