Сбой записи в файл как JSON с logstash-logback-encoder

У меня есть приложение Scala, использующее scala logging 3.5.0, logback-classic 1.1.7. Я могу войти в простой текстовый файл без проблем, но (хотя я еще не использую logstash), я хотел изменить формат файла журнала на JSON, используя https://github.com/logstash/logstash-logback-encoder. Мое обновленное определение приложения файла теперь выглядит так:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/solomon.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  <!-- daily rollover -->
  <fileNamePattern>solomon.%d{yyyy-MM-dd}.log</fileNamePattern>

  <!-- keep 30 days' worth of history -->
  <maxHistory>30</maxHistory>
</rollingPolicy>

<encoder>
  <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</encoder>

Из документации кажется, что это должно войти в файл как JSON со всеми поддерживаемыми полями, но я получаю пустой файл журнала и следующее сообщение об ошибке при запуске приложения:

09:05:58,101 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
09:05:58,102 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@24:70 - no applicable action for [encoder], current ElementPath  is [[configuration][appender][encoder][encoder]]
09:05:58,102 |-ERROR in ch.qos.logback.classic.PatternLayout("null") - Empty or null pattern.

Я уверен, что упускаю что-то очевидное; мои настройки кажутся очень похожими на другие, которые я видел (которые просто хотят вести журнал файлов JSON, но еще не используют logstash). Любая помощь будет очень высоко ценится!

1 ответ

Проблема была по моей вине... У меня были вложенные объявления кодировщика. Как только я удалил это, все работало нормально. Я предполагаю, что отправил слишком рано!

Другие вопросы по тегам