Python Исключение регистратора регистрируется как трассировка в Azure Application Insights (Azure Функция) - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь зарегистрировать обработанное исключение из моей Python Azure функции в Application Insights как исключение. Что бы я ни делал, это всегда записывается как трек с уровнем серьезности ошибок. Вывод в локальной консоли «красный», как это было исключено.

Что я пробовал:

  • Изменение функции. json запись в журнал на:

    "ApplicationInsights": {
      "LogLevel": {
          "Default": "Error"
      } 
    
  • различные вызовы метода исключения

    except Exception as e:
        logger.exception("An error has occured",exc_info=e)
        logger.exception("An error has occured")
        logger.exception()
  • попытался вызвать клиент телеметрии напрямую
    tc.track_exception()
  • очистка и добавление обработчиков в логгер

Редактировать:

Пример, чтобы уточнить, что я имею в виду: image

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Запись исключения в виде простого текста вместо записи полной трассировки выглядит следующим образом:

handler = AzureLogHandler(connection_string = "instrmental key here")
handler.setLevel(logging.ERROR)
logger = logging.getLogger()
logger.addHandler(handler)
try:
    raise Exception("test")
except Exception as e:
    # Logging as string
    logger.debug('The following error has occured: {0}'.format(e))
    # Logging as full trace
    # logger.debug('The following error was traced:', exc_info=True)
0 голосов
/ 07 апреля 2020

Благодаря Орсирису де Йонгу после многих часов борьбы я нашел решение:

handler = AzureLogHandler(connection_string = "instrmental key here")
handler.setLevel(logging.ERROR)
logger = logging.getLogger()
logger.propagate = False
if(handler not in logger.handlers):
    logger.addHandler(handler)
try:
    raise Exception("test")
except Exception as e:
    logger.exception('An error has occured', exc_info=True)

Этот обработчик превратил трассировку в исключение в Application Insights и решил проблему с двойной регистрацией

...