Start Debugging

logging

10 статей

2026-10-26 dotnetcsharplogging

Как использовать разные шаблоны вывода Serilog для разных уровней журналирования из appsettings.json

outputTemplate задаётся для sink целиком, поэтому для форматирования по уровням нужен либо ExpressionTemplate с блоками {#if @l ...}, либо два вложенных логгера Logger с фильтрами ByIncludingOnly / ByExcluding. Оба варианта настраиваются только через appsettings.json, проверено на Serilog 4.4, Serilog.Settings.Configuration 10.0.1 и Serilog.Expressions 5.0.

.NET Extensions 10.11: буферизованные логи наконец сохраняют свои scope

Microsoft.Extensions.Telemetry 10.11.0, вышедший 2026-10-15, добавляет в глобальную буферизацию логов и буферизацию на уровне запроса экспериментальную опцию IncludeScopes, чтобы OrderId и TenantId из BeginScope переживали Flush(), а не терялись молча.
2026-10-11 csharpdotnetfile-io

Как читать хвост файла журнала в C#, пока другой процесс продолжает в него писать

Откройте журнал с FileShare.ReadWrite | FileShare.Delete, перейдите в конец, опрашивайте файл на появление новых байтов, декодируйте их собственным UTF-8 Decoder вместо StreamReader и явно обрабатывайте усечение и ротацию. Проверенная реализация tail -F для .NET 10 и .NET 11.

Как добавить id текущего пользователя в каждую запись журнала в ASP.NET Core

Middleware с BeginScope пропускает запись об ошибке от обработчика исключений и строку Request finished. Зарегистрируйте ILogEnricher, который читает пользователя из IHttpContextAccessor, открывайте scope только тогда, когда работа выходит за пределы запроса, и учтите, что AddSerilog из Serilog молча отключает обогащение.

Как скрывать чувствительные значения в журналах с помощью LogProperties и редактирования данных в .NET

Полное руководство по редактированию классифицированных данных в журналах, созданных генератором исходного кода: постройте таксономию, напишите Redactor, подключите EnableRedaction и AddRedaction и разберитесь с дискриминатором, который незаметно ломает частичное маскирование. С реальным выводом из Microsoft.Extensions.Compliance.Redaction 10.9.0.

Переход от интерполяции строк в ILogger к шаблонам сообщений структурированного журналирования в .NET 11

Пошаговое руководство по переводу вызовов ILogger с $-интерполяцией на шаблоны сообщений и методы, сгенерированные через [LoggerMessage], в .NET 11: что ломается, как пройтись по кодовой базе с CA2254, как проверить состояние JSON и как откатиться.

Как настроить структурированное журналирование с Serilog и Seq в .NET 11

Полное руководство по подключению Serilog 4.x и Seq 2025.2 к приложению .NET 11 ASP.NET Core: AddSerilog против UseSerilog, двухэтапное журналирование при старте, конфигурация через JSON, обогатители, журналирование запросов, корреляция трассировок OpenTelemetry, API-ключи и продакшн-нюансы вокруг буферизации, хранения и уровня сигнала.