Используйте Serilog с Microsoft.Extensions.Logging.ILogger - PullRequest
0 голосов
/ 01 мая 2020

Я создал проект. NET Core 3.1 с использованием хоста, контейнера Io C с IServiceCollection и реализовал ведение журнала везде, используя интерфейс ILogger<T> из Microsoft.Extensions.Logging. Теперь мне нужно реализовать более продвинутое ведение журналов и я решил использовать Serilog.

Я вроде бы предположил, что переключиться со встроенного регистратора. NET на Serilog будет просто. Но, к моему удивлению, Serilog использует свой собственный ILogger интерфейс - облом! Так что теперь мне нужно было обновить ВСЕ места, чтобы использовать Serilog ILogger или реализовать Serilog с интерфейсом. NET Core ILogger<T>.

Мой вопрос - действительно ли невозможно использовать Serilog с интерфейс ILogger в Microsoft.Extensions.Logging? Было бы намного умнее!

1 Ответ

1 голос
/ 01 мая 2020

В сборке Serilog.Extensions.Logging есть метод расширения для IloggingBuilder, называемый AddSerilog (он находится в пространстве имен Serilog), который позволит вам использовать Serilog для ведения журнала. Например:

WebHost.CreateDefaultBuilder(args)
       .ConfigureLogging(logging =>
       {
         logging.ClearProviders();
         logging.AddSerilog();
       });

Теперь реализация ILogger и ILogger<> вызовет Serilog.

...