У меня есть приложение (dotnet core 2.0), которое отправляет данные телеметрии в наш экземпляр AppInsights через механизм ILogger
// Startup.cs :: Configure()
factory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information);
Пока это работает, и вызовы LogInformation()
и его братьев и сестер действительно пишут нашему ИИ, я замечаю странность в том, что в НЕКОТОРЫХ записях, похоже, отсутствуют значения для cloud_RoleName (и cloud_RoleInstance).
Мне известно, что я мог бы предоставить инициализатор телеметрии, чтобы вручную установить это значение, и в случае неудачи другого решения я вернусь к этому. Но я хотел бы понять, что здесь происходит. Кажется, нет никакой разницы между вызовами, которые применяют данные, и теми, которые не применяют.
Единственное различие, которое я видел (только что заметил, поэтому не проверял), заключается в том, что один из тех, кто работает, находится в классе с ILogger следующим образом:
private ILogger Logger { get; }
и тот, который не работает, похож на:
private readonly ILogger<ConnexeoPartnerLoginHandler> _logger;
Есть несколько различий между этими двумя, поэтому мне нужно проверить некоторые из этих вариаций и посмотреть, имеют ли они какое-либо значение в выходных данных.
обновление
Переход к свойству ILogger, аналогичному первому (тому, который работал для другого вызова), не имел для меня никакого значения. Не ожидал, но должен был попробовать.