Serilog, как разделить логи?

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#.