0

scala logging 3.5.0、logback-classic 1.1.7を使用する Scala アプリケーションがあります。問題なくプレーン テキスト ファイルにログを記録できますが (logstash はまだ使用していませんが)、logstash-logback-encoderを使用してログ ファイル形式を JSON に変更したいと考えていました。更新されたファイル アペンダーの定義は次のようになります。

<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 をまだ使用していない)。どんな助けでも大歓迎です!

4

1 に答える 1

0

問題は私のせいでした...エンコーダー宣言をネストしていました。それを削除すると、すべてが正常に機能しました。投稿が早すぎたみたい!

于 2016-10-05T14:51:02.257 に答える