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