Параметр, который вы пытаетесь использовать, предназначен для аргументов, которые обычно используются для интерполяции строки сообщения.Некоторые провайдеры журналирования, такие как Serilog, сохранят эти аргументы как JSON, но затем вы полагаетесь на конкретного провайдера и то, как они решат его обработать.
Если ваша цель - просто получить {detail}
замещается объектом JSON, затем просто сделайте это прямо в сообщении:
var detail = JsonConvert.SerializeObject(new
{
SomeObject = someVariable,
SomeOtherObject = someOtherVariable
});
_logger.LogInformation($"Someone did something! \r\n{detail}");