Я пытаюсь добавить поле, относящееся к событию, к одному из операторов регистратора, используя документацию logstash .Мой логгер выглядит следующим образом:
LOGGER.info("Executed REST request time={}ms", StructuredArguments.value("request_time_ms", elapsedTimeMs));
Согласно документации:
StructuredArguments будет включен в вывод JSON при использовании LogstashEncoder / Layout или при использованиисоставные кодировщики / макеты с поставщиком аргументов
Это означает, что StructuredArguments
должно работать нормально для меня, пока я использую LogstashEncoder
:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
</encoder>
</appender>
Но все же request_time_ms
отсутствует в выводе JSON:
{
"@timestamp": "2018-09-20T14:00:43.560+03:00",
"@version": 1,
"appname": "my_app",
"level": "INFO",
"level_value": 20000,
"logger_name": "com.example.MetricsAspect",
"message": "Executed REST request time=258ms",
"thread_name": "main"
}