Reo.Core.Logging 8.0.781

There is a newer version of this package available.
See the version list below for details.
dotnet add package Reo.Core.Logging --version 8.0.781
                    
NuGet\Install-Package Reo.Core.Logging -Version 8.0.781
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Reo.Core.Logging" Version="8.0.781" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reo.Core.Logging" Version="8.0.781" />
                    
Directory.Packages.props
<PackageReference Include="Reo.Core.Logging" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Reo.Core.Logging --version 8.0.781
                    
#r "nuget: Reo.Core.Logging, 8.0.781"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Reo.Core.Logging@8.0.781
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Reo.Core.Logging&version=8.0.781
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Logging&version=8.0.781
                    
Install as a Cake Tool

Reo.Core.Logging

Описание пакета

Reo.Core.Logging — это библиотека для настройки и валидации конфигурации логгирования с использованием Serilog. Пакет обеспечивает проверку корректности настроек, таких как Enrich, Using, WriteTo, и других, через FluentValidation. Это позволяет избежать ошибок в конфигурации приложения на этапе запуска, а также упрощает интеграцию с системами логгирования, такими как Graylog, ElasticSearch и консоль.

Решаемые проблемы

  • Обеспечение обязательного наличия критически важных настроек логгирования.
  • Валидация структуры конфигурации для предотвращения ошибок в работе логгирования.
  • Поддержка нескольких целевых систем логгирования (Console, Graylog, ElasticSearch).

Основные компоненты

  1. Serilog Класс, представляющий настройки Serilog. Содержит свойства:

    • Using — список используемых пакетов (например, Serilog.Sinks.Console).
    • Enrich — список расширений для обогащения логов (например, FromLogContext).
    • WriteTo — массив объектов WriteTo, определяющих, куда отправлять логи.
  2. WriteTo Класс, описывающий целевую систему логгирования. Содержит:

    • Name — имя цели (например, Console, Graylog, Elastic).
    • Args — словарь аргументов для настройки цели (например, hostnameOrAddress, nodeUris).
  3. SerilogSectionValidator Валидатор, проверяющий обязательные поля в Serilog, такие как Enrich, Using, и WriteTo. Генерирует ошибки, если конфигурация не соответствует требованиям.

  4. WriteToSectionValidator Валидатор, проверяющий корректность настроек для каждой цели логгирования. Например, для Elastic проверяет наличие nodeUris, indexFormat, и т.д.

  5. ReoLoggerSectionNotFoundException Исключение, выбрасываемое, если секция Serilog отсутствует в конфигурации.


Требования


Установка

NuGet Package Manager

Install-Package Reo.Core.Logging

.NET CLI

dotnet add package Reo.Core.Logging

Настройка

Регистрация в DI-контейнере (ASP.NET Core)

Добавьте следующий код в Program.cs или Startup.cs:

var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((context, configuration) =>
    configuration.ReadFrom.Configuration(context.Configuration));

Конфигурационные параметры

Пример appsettings.json:

{
  "Serilog": {
    "Using": ["Serilog.Sinks.Console", "Serilog.Sinks.Graylog"],
    "Enrich": ["FromLogContext", "WithThreadId"],
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level}] {Message}{NewLine}{Exception}"
        }
      },
      {
        "Name": "Graylog",
        "Args": {
          "serverUri": "http://graylog-server:12201",
          "messageTemplate": "{Message}"
        }
      }
    ]
  }
}

Использование

Пример 1: Настройка логгирования в ASP.NET Core

var app = builder.Build();
app.UseSerilog(); // Используется по умолчанию при использовании UseSerilog в Host

Пример 2: Проверка конфигурации в коде

var configuration = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .Build();

var validator = new SerilogSectionValidator();
var serilogConfig = new Options.Serilog();
configuration.GetSection("Serilog").Bind(serilogConfig);
validator.ValidateAndThrow(serilogConfig);

Лицензия

Данный пакет распространяется под лицензией MIT.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Reo.Core.Logging:

Package Downloads
Reo.Core.IntegrationTesting

Package Description

Reo.Core.Queue.MassTransit

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.31 0 2/13/2026
10.0.30 26 2/12/2026
10.0.29 27 2/12/2026
10.0.28 34 2/11/2026
10.0.27 38 2/11/2026
10.0.26 88 2/9/2026
10.0.25 80 2/9/2026
10.0.24 90 2/9/2026
10.0.23 80 2/9/2026
10.0.22 79 2/9/2026
10.0.21 85 2/9/2026
10.0.20 82 2/9/2026
10.0.15 93 2/6/2026
10.0.14 92 2/6/2026
10.0.13 90 2/4/2026
10.0.12 89 2/3/2026
10.0.11 105 2/2/2026
10.0.10 93 1/29/2026
10.0.9 93 1/29/2026
8.0.781 211 12/23/2025
Loading failed