Как зарегистрировать json в журнале ядра asp.net и взглянуть на приложения - PullRequest
1 голос
/ 08 мая 2019

Есть ли способ зарегистрировать что-то вроде следующего в asp.net core 2?

_logger.LogInformation("Someone did something! \r\n{detail}", new {
    SomeObject = someVariable,
    SomeOtherObject = someOtherVariable
});

Я пробовал это с сериализованными значениями, но результирующий json, похоже, обрезается.

1 Ответ

2 голосов
/ 08 мая 2019

Параметр, который вы пытаетесь использовать, предназначен для аргументов, которые обычно используются для интерполяции строки сообщения.Некоторые провайдеры журналирования, такие как Serilog, сохранят эти аргументы как JSON, но затем вы полагаетесь на конкретного провайдера и то, как они решат его обработать.

Если ваша цель - просто получить {detail} замещается объектом JSON, затем просто сделайте это прямо в сообщении:

var detail = JsonConvert.SerializeObject(new
{
    SomeObject = someVariable,
    SomeOtherObject = someOtherVariable
});
_logger.LogInformation($"Someone did something! \r\n{detail}");
...