Reo.Core.Logging
10.0.27
See the version list below for details.
dotnet add package Reo.Core.Logging --version 10.0.27
NuGet\Install-Package Reo.Core.Logging -Version 10.0.27
<PackageReference Include="Reo.Core.Logging" Version="10.0.27" />
<PackageVersion Include="Reo.Core.Logging" Version="10.0.27" />
<PackageReference Include="Reo.Core.Logging" />
paket add Reo.Core.Logging --version 10.0.27
#r "nuget: Reo.Core.Logging, 10.0.27"
#:package Reo.Core.Logging@10.0.27
#addin nuget:?package=Reo.Core.Logging&version=10.0.27
#tool nuget:?package=Reo.Core.Logging&version=10.0.27
Reo.Core.Logging
Описание пакета
Reo.Core.Logging — это библиотека для настройки и валидации конфигурации логгирования с
использованием Serilog. Пакет обеспечивает проверку корректности настроек, таких
как Enrich, Using, WriteTo, и других, через FluentValidation. Это позволяет избежать ошибок в конфигурации
приложения на этапе запуска, а также упрощает интеграцию с системами логгирования, такими как Graylog, ElasticSearch и
консоль.
Решаемые проблемы
- Обеспечение обязательного наличия критически важных настроек логгирования.
- Валидация структуры конфигурации для предотвращения ошибок в работе логгирования.
- Поддержка нескольких целевых систем логгирования (Console, Graylog, ElasticSearch).
Основные компоненты
SerilogКласс, представляющий настройки Serilog. Содержит свойства:Using— список используемых пакетов (например,Serilog.Sinks.Console).Enrich— список расширений для обогащения логов (например,FromLogContext).WriteTo— массив объектовWriteTo, определяющих, куда отправлять логи.
WriteToКласс, описывающий целевую систему логгирования. Содержит:Name— имя цели (например,Console,Graylog,Elastic).Args— словарь аргументов для настройки цели (например,hostnameOrAddress,nodeUris).
SerilogSectionValidatorВалидатор, проверяющий обязательные поля вSerilog, такие какEnrich,Using, иWriteTo. Генерирует ошибки, если конфигурация не соответствует требованиям.WriteToSectionValidatorВалидатор, проверяющий корректность настроек для каждой цели логгирования. Например, дляElasticпроверяет наличиеnodeUris,indexFormat, и т.д.ReoLoggerSectionNotFoundExceptionИсключение, выбрасываемое, если секцияSerilogотсутствует в конфигурации.
Требования
- .NET версии: 8.0, 9.0
- Зависимости:
Установка
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 | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- ertelecom.Serilog.Sinks.Graylog (>= 1.1.0)
- FluentValidation (>= 12.1.1)
- JetBrains.Annotations (>= 2025.2.4)
- Microsoft.Extensions.Configuration (>= 10.0.2)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.2)
- Microsoft.Extensions.DependencyInjection (>= 10.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Logging (>= 10.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Options (>= 10.0.2)
- Newtonsoft.Json (>= 13.0.4)
- Serilog (>= 4.3.0)
- Serilog.AspNetCore (>= 10.0.0)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
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 |
| 10.0.8 | 97 | 1/27/2026 |