Вход в систему Azure Функции с EF Core и DI - PullRequest
0 голосов
/ 20 марта 2020

Мой вопрос:

Я относительно новичок в использовании контейнеров Io C и механизмов регистрации в них. NET Core.

Как получить журналы, написанные моей сущностью Контекст Framework Core для отображения в моем Azure журнале функций и в ApplicationInsights соответственно.

Фон:

У меня есть Azure Функция, в которой я использую .AddDbContext() для регистрации моего DbContext для внедрения зависимостей:

public override void Configure(IFunctionsHostBuilder builder)
{
    var connectionString = Environment.GetEnvironmentVariable("MyConnectionString");

    builder.Services.AddDbContext<MyDbContext>(
        options => options.UseSqlServer(connectionString));
}    

в Startup.cs.

Впрыснутый DbContext затем используется в моей библиотеке уровня доступа к данным для выполнения, ну, в общем, связанных с базой данных. В некоторых случаях я хочу явно регистрировать, что происходит, но без необходимости реализовывать выделенное поле или свойство регистратора в моем классе DbContext.

Вместо этого я пытаюсь получить доступ к службе журналирования, которая зарегистрирована в моем DbContext через .AddDbContext(), и войти в систему с экземпляром ILogger, который я получаю по var logger = contextInstance.GetService<ILogger<MyDbContext>>();.

Теперь теоретически я бы просто go например logger.LogInformation("Something happened!");. Так как это не вызывает каких-либо исключений во время выполнения, я думаю, это вроде как работает.

Теперь я хотел бы видеть "Что-то случилось!" в моих журналах функций. Например: azurefunction_log

Я знаю, что отображение этих журналов в Azure Журналы функций приведут к тому, что все журналы, записанные в контексте, появятся в моем журнале функций как хорошо. Я позабочусь о фильтрации позже ... или, может быть, у кого-то есть предложение по этому вопросу сразу?

Можно ли сделать так, как я хочу?

На заметку :

Если у кого-то есть мнение об этом подходе или он мог бы указать мне более эффективный способ достижения моего входа в этот сценарий, я был бы рад прочитать любые комментарии по этому поводу.

...