Наше основное приложение dotnet использует serilog, чтобы выплевывать файлы журналов в формате json, которые мы используем beats / logstash / ES для обработки.
По умолчанию используется поле messageTemplate, которое использует параметры и сохраняет значения в другом месте, как показано ниже, с {ConnectionId}.
Есть ли способ, чтобы в нем было поле с фактическим сообщением?Например: «Идентификатор соединения 0HLDSOA7JG3GS отправка FIN.»
{
"source" => "/var/log/myapp/myapp-api-logs /myapp-staging-api-logs-20180518.log",
"json" => {
"Properties" => {
"ConnectionId" => "0HLDSOA7JG3GS" ,
"EventId" => {
"Id" => 7
},
"SourceContext" => "Microsoft.AspN etCore.Server.Kestrel.Transport.Libuv"
},
"Level" => "Debug",
"Timestamp" => "2018-05-18T16:23 :40.5286099+03:00",
"MessageTemplate" => "Connection id \" {ConnectionId}\" sending FIN.",
"message" => ""
},
"beat" => {
"hostname" => "33eb9c70141c",
"name" => "33eb9c70141c",
"version" => "6.2.4"
},
"@timestamp" => 2018-05-18T13:23:43.999Z,
"prospector" => {
"type" => "log"
},
"offset" => 55337,
"fields" => {
"appenv" => "staging",
"appsource" => "myapp-staging-api-logs"
},
"@version" => "1",
"host" => "33eb9c70141c",
"tags" => [
[0] "beats_input_raw_event"
]
}