Cloud_RoleName не всегда получает значения через ILogger - PullRequest
0 голосов
/ 30 августа 2018

У меня есть приложение (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, аналогичному первому (тому, который работал для другого вызова), не имел для меня никакого значения. Не ожидал, но должен был попробовать.

1 Ответ

0 голосов
/ 30 августа 2018

Для кода, который не работает, пожалуйста, попробуйте инициализировать поле в методе конструктора, как показано ниже:

private readonly ILogger<ConnexeoPartnerLoginHandler> _logger;

public ConnexeoPartnerLoginHandler(ILogger<ConnexeoPartnerLoginHandler> logger)
{
     _logger = logger;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...