В этой публикации мы будем использовать веб-API .NET Core версии 2.2.
Щелкните здесь, чтобы узнать, как создать новый веб-API
Зачем использовать Serilog?
Serilog обеспечивает ведение журнала базовой диагностики для многих приемников, включая, помимо прочего, консоль, файлы, Amazon, Azure и т. Д. В этой статье будут продемонстрированы консоль и приемники файлов. Это просто, как 1, 2, 3, для настройки с помощью конфигураций приложений.
1. Установите пакеты Serilog
Чтобы установить пакеты, выполните:
dotnet add package
Или в Visual Studio перейдите в Проект ›Добавить пакеты Nuget…
Serilog.AspNetCore - основной драйвер
Serilog.Settings.Configuration - провайдер, который считывает конфигурации приложений
Serilog.Sinks.Async - асинхронная оболочка для других приемников, особенно приемника файлов, которая снижает накладные расходы на вызовы журналирования, делегируя работу фоновому потоку.
Serilog.Sinks.Console - значение по умолчанию раковина и наиболее подходящая для разработки
Serilog.Sinks.File - подходящая раковина для производства
2. Файлы конфигурации
Замените «Ведение журнала» на «Serilog» в appsettings.json, как показано ниже:
Минимальный уровень «По умолчанию» ограничивает регистрацию указанного кода проекта. Это отличается от ключа «Переопределить», который ограничивает события журнала платформы ASP.NET Core.
Клавиша «Имя» указывает желаемый приемник. Для записи в несколько приемников добавьте еще один объект в массив «WriteTo».
Обратите внимание, что асинхронный приемник оборачивает последующие приемники. Несмотря на то, что асинхронный приемник не принесет значительного прироста производительности консоли, он позволит вам похвастаться перед друзьями своими элитными навыками асинхронного кодирования.
Когда вы будете готовы к настройкам производства, добавьте следующий appsetting.Production.json в корневой каталог вашего проекта рядом с другими настройками приложения.
Минимальный уровень здесь перезаписывается, поскольку отладка не слишком полезна в производственной среде.
Вы спросите, как я могу свернуть логи?
Поскольку пакет Serilog.Sinks.RollingFile устарел, теперь он обрабатывается пакетом Serilog.Sinks.File, который мы скачали ранее.
В этом примере показан скользящий интервал дня и ведение журналов за последние 7 дней.
«СохраненныйFileCountLimit» удаляет старые файлы старше указанного интервала. По умолчанию это 31 интервал, если оставить значение null.
Буферизованный, установленный в true, улучшает производительность записи, позволяя базовому потоку буферизовать записи.
3. Подключите Serilog к веб-API.
Добавьте строки 2, 10 и 11 в Program.cs:
Вот и все! Теперь вы можете войти в любое место вашего приложения, импортировав Serilog и используя доступные функции класса Log, как показано в приведенных ниже примерах:
Щелкните здесь, чтобы узнать больше о возможных настройках конфигурации Serilog