Serilog - это платформа логирования, которая позволяет разделить логи на разные источники и уровни важности. Для деления логов в Serilog используется понятие "sinks" (соответствует производитель-потребитель в модели производитель-потребитель). Каждый "sinks" отвечает за отправку логов в определенный источник, такой как файл, база данных, консоль, электронная почта и т. д.
Для разделения логов на разные источники, вы можете использовать различные "sinks" Serilog в своем проекте. Следующие примеры предоставляют информацию о различных "sinks" и их использовании:
1. File Sink: Для записи логов в файл используйте "File Sink". Пример кода ниже показывает, как добавить его в конфигурацию Serilog.
Log.Logger = new LoggerConfiguration() .WriteTo.File("log.txt") .CreateLogger();
2. Console Sink: Для вывода логов в консоль используйте "Console Sink". Пример кода ниже показывает, как добавить его в конфигурацию Serilog.
Log.Logger = new LoggerConfiguration() .WriteTo.Console() .CreateLogger();
3. Database Sink: Для записи логов в базу данных используйте "Database Sink". Пример кода ниже показывает, как добавить его в конфигурацию Serilog.
Log.Logger = new LoggerConfiguration() .WriteTo.MSSqlServer(connectionString, tableName) .CreateLogger();
4. Email Sink: Для отправки логов по электронной почте используйте "Email Sink". Пример кода ниже показывает, как добавить его в конфигурацию Serilog.
Log.Logger = new LoggerConfiguration() .WriteTo.Email(fromEmail, toEmail, mailServer) .CreateLogger();
Кроме того, Serilog также предоставляет возможность фильтровать логи по уровню важности (отладка, информация, предупреждение, ошибка и т. д.) и / или по тегам. Например, вы можете настроить Serilog для записи только логов уровня предупреждения:
Log.Logger = new LoggerConfiguration() .MinimumLevel.Warning() .WriteTo.Console() .CreateLogger();
Таким образом, вы можете использовать различные "sinks" и фильтры Serilog для разделения, фильтрации и отправки логов в разные источники. Это дает вам полный контроль над тем, как и куда записывать логи в вашем проекте на C#.