Рекомендации / шаблон для пользовательского ILoggerProvider с DbContext в качестве цели - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь реализовать свой собственный ILoggerProvider (с записью журналов в базу данных) для использования в моих приложениях.

Я использую AddDbContext<DbContext>() для внедрения контекста базы данных и использую метод AddLogging() для внедрения LoggerProvider, добавляя моего собственного провайдера через метод расширения ILoggingBuilder. Таким образом, я могу конструктор легко внедрить DbContext и ILogger<T> во все мои контроллеры API.

Единственная (и самая проблемная) проблема, с которой я сейчас сталкиваюсь, - это определение этих зависимостей: в то время как DbContext вводится как зависимая область, ILogger - нет, заставляя меня передать параметр ServiceLifetime.Singleton в вызов AddDbContext. Это иногда вызывает проблемы при сохранении нескольких журналов за короткое время, вызывая исключение.

Короче говоря, существует ли какой-либо общий шаблон для реализации области действия ILoggerProvider с доступом к базе данных?

...