#c# #azure-application-insights
Вопрос:
У меня есть веб-приложение .NET 5, и я настроил application insights. Когда в моем приложении возникает ошибка, я вижу ее на портале azure, но я не вижу никакой трассировки стека
В моем стартапе:
services.AddApplicationInsightsTelemetry();
Я даже попытался настроить ведение журнала в своей программе.cs, как описано здесь
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.AddApplicationInsights();
logging.AddFilter<ApplicationInsightsLoggerProvider>(string.Empty, LogLevel.Trace);
})
Что я упускаю?
Комментарии:
1. Отображается ли это, когда вы следуете этому руководству ?
2. @mu88 При использовании новой телеметрии() я получаю устаревшее предупреждение. Мы не рекомендуем использовать конфигурацию телеметрии. Активен в .NET Core. Видишь github.com/microsoft/ApplicationInsights-dotnet/issues/1152 для получения более подробной информации
3. docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core
Ответ №1:
Хорошо, я все еще немного возлюсь с этим, но, согласно документам здесь, «Все исключения, обрабатываемые приложением, по-прежнему должны отслеживаться вручную.»
Это означает, что если вы напишете свои собственные обработчики исключений, вам все равно придется самостоятельно отправлять исключение и трассировку стека в application insights.
Например
Либо создайте исходное исключение
catch (Exception e)
{
throw;
}
Или отправьте исключение самостоятельно, используя Ilogger и LogError:
catch (Exception e)
{
_logger.LogError(e, "message here");
return BadRequest(e.ToString());
}
Комментарии:
1. Есть ли у вас промежуточное программное обеспечение для исключений? Он может отправлять исключения в Application Insights в качестве центрального фрагмента кода