Как сохранить Json Object в ELK, используя Dotnet Logging - PullRequest
0 голосов
/ 11 октября 2018

Как я могу сохранить Json Object, используя интерфейс ведения журнала dotnet.Я использую Serilog в качестве провайдера.

С этим кодом я никогда не вижу «myObject», когда проверяю журнал:

public CommandResult Example(MyObject myObject)
{
        try
        {
             logger.LogInformation("myObject is : ", myObject); // <== log my object as json
         }
         catch (System.Exception ex)
         {
             logger.LogError(ex, "error");
         }

         return null;
}

Как объект args журнала?:

enter image description here

Возможно или я должен использовать другой способ?

----- РЕДАКТИРОВАТЬ 2018-10-22 ----

Когда я захожу со свойством {@property}, я вижу информацию о Кибане.но я сохраняю только примитивное свойство

РАБОТА

logger.LogInformation("SendMessageToFrontEnd {@user} {@message} {@sendDate}", Model.Owner.Id, "Test", messages.SentDate);

НЕ РАБОТА *

class myObject
{
  [JsonProperty("dataInt")]
  public int DataInt { get; set; }
  [JsonProperty("name")]
  public string Name { get; set; }
}

...

var test = new myObject() { DataInt = 123, Name = "test" };
logger.LogInformation("SendMessageToFrontEnd {@user} {@message} {@sendDate}", Model.Owner.Id, test, messages.SentDate);

Как войти в JSON Object?

1 Ответ

0 голосов
/ 22 октября 2018

После некоторого расследования я исправляю свою ошибку (не понимаю почему).

Но когда вы входите в ELK, это выглядит как поле , сообщение было зарезервировано.

// NOT WORK
logger.LogInformation("SendMessageToFrontEnd {@user} {@message} {@sendDate}", Model.Owner.Id, test, messages.SentDate);

// WORK
logger.LogInformation("SendMessageToFrontEnd {@user} {@messageSent} {@sendDate}", Model.Owner.Id, test, messages.SentDate);

Бен.

...