При записи сереализованных данных в логгер выводит (null)

Пишу реализацию логгера которая будет добавлять некоторую доп информацию в конечный лог, но сталкиваюсь с проблемой.

Сначала сам код реализации логгера:

public class Enchancer<T>(ILoggerFactory loggerFactory, IContext context) : ILogger<T>
{
    private readonly ILogger _logger = loggerFactory.CreateLogger(typeof(T).FullName ?? typeof(T).Name) ??
        throw new ArgumentNullException(nameof(loggerFactory), "Logger cannot be null");

    public IDisposable BeginScope<TState>(TState state) where TState : notnull => _logger.BeginScope(state)!;

    public bool IsEnabled(LogLevel logLevel) => _logger.IsEnabled(logLevel);

    public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception, string> formatter)
    {
        string? formatedData = "Дополнительные данные: ";
        if (context.Additional is not null)
            formatedData += JsonConvert.SerializeObject(context.Additional);

        var newState = $"Context Id: {context.ContextId}";
        Console.WriteLine($"Hello from enc, it's formated data: {formatedData}");
        if (formatedData is not null)
            newState += $"\n{formatedData}";

        newState += $"\n{state}";

        _logger.Log(logLevel, eventId, newState, exception, formatter);
    }
}

public class Context : IContext
{
    public string ContextId { get; set; } = "None";
    public object? Additional { get; set; }
}

Ничего необычного для меня тут нет, все должно работать как и ожидается, но если я в сообщение лога добавляю formatedData, то в логгере данные будут показаны как (null).

Но, при выводе этих же данные через Console.WriteLine() все будет показано в нужном формате.

Вывод консоли:

info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:7209

info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5202

info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down.

info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development

info: Microsoft.Hosting.Lifetime[0] Content root path: C:\Users\Stewi\source\repos\api\webapi Hello from enc, it's formated data: Дополнительные данные: {"Name":"Yan","Username":"air2921"}

info: webapi.Controllers.TestController[0] Context Id: 99c2b2f9-dff3-406c-ba82-e5823705f347 Дополнительные данные: (null) <Тут оригинальная запись лога>


Ответы (0 шт):