ILogger.LogError не регистрирует детали исключения - PullRequest
0 голосов
/ 09 мая 2019

У меня есть приложение Functions (версия 2.0), и я пытаюсь зарегистрировать трассировку стека исключительной ситуации.

     try
        {
            processedOrder = await orderProcessingService.ProcessOrder(order);
        }
        catch (Exception ex)
        {
            log.LogError(ex, $"Error processing order: {order.Id}");
        }

Это только регистрирует сообщение в App Insights, но ничего о переданном объекте исключения.

Правильно ли я это делаю?

Если я сделаю log.LogError(ex, $"Error processing order: {order.Id}", ex), то получу сообщение об исключении, но не трассировку стека.

1 Ответ

1 голос
/ 09 мая 2019

Помимо регистрации ошибки, вам необходимо явно отслеживать исключение с помощью клиента телеметрии, чтобы получить сведения об исключении.Я реализовал ExceptionLogger в веб-API 2.0, чтобы отправлять сведения об исключениях приложениям, используя метод отслеживания исключений.

var telemetry = new TelemetryClient();
    ...
    try
    { ...
    }
    catch (Exception ex)
    {       
       telemetry.TrackException(ex, properties, measurements);
    }
...