Перейти к содержанию

Добавление нового поставщика журналирования в приложение

Чтобы добавить нового поставщика журналирования, выполним следующие действия.

  1. Добавим Nuget-пакет поставщика, например NetEscapades.Extensions.Logging.RollingFile1. Добавим либо при помощи Диспетчера пакетов в VS, либо командой
    dotnet add package NetEscapades.Extensions.Logging.RollingFile
    
  2. Добавим поставщика методом IHostBuilder.ConfigureLogging(). Воспользуемся методом расширения AddFile из пакета поставщика:

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build.Run();
        }
    
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging(builder => builder.AddFile())
                .ConfigureWebHostDefaults(webBuilder =>
                {
                  webBuilder.UseStartup<Startup>();
                });
    }
    

Примечание

Добавление нового поставщика не заменяет существующих. Так как мы использовали метод CreateDefaultBuilder(), поставщики консоли и отладки уже добавлены. Чтобы удалить их, нужно вызвать метод builder.ClearProviders() в начале лямбды в ConfigureLogging(). Или использовать специальный HostBuilder.

Стоит заметить, что использовать запись в файл в промышленном окружении может быть не лучшим вариантом (хотя это и лучше, чем использовать несуществующее окно консоли). Вместо этого лучше воспользоваться специальным агрегатором журналов. Несколько вариантов: Loggr (кажется, помер, сайт недоступен), elmah.io или Seq.


  1. Это пакет, написаный автором книги. Код доступен здесь 


Последнее обновление : 7 мая 2023 г.
Дата создания : 20 октября 2022 г.

Комментарии

Комментарии