2016-05-04 54 views
7

です。ログバックのためのAppenderを作成し、ElasticSearchにログを保存してからlogback.xmlに追加します。私はそれを1つのアプリケーションに適用し、ESからログを取得しました。logback:[エンコーダ]に対して適用できるアクションはありません。現在のElementPathは[[コンフィグレーション] [appender] [エンコーダ]

しかし、私は別のアプリケーションにそれを適用すると、logbackは、次のエラーが表示されます。

16:18:26,040 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [com.dcf.iqunxing.fx.dashcam.agent.log.appender.logback.DashcamAppender] 
16:18:26,062 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [dashcamAppender] 
16:18:26,078 |-ERROR in [email protected]:12 - no applicable action for [encoder], current ElementPath is [[configuration][appender][encoder]] 
16:18:26,080 |-ERROR in [email protected]:13 - no applicable action for [Pattern], current ElementPath is [[configuration][appender][encoder][Pattern]] 

私logback.xmlは次のとおりです。

... 
<appender name="dashcamAppender" 
     class="com.dcf.iqunxing.fx.dashcam.agent.log.appender.logback.DashcamAppender"> 
    <encoder> 
     <Pattern>.%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern> 
    </encoder> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>TRACE</level> 
    </filter> 
</appender> 
... 

が何らかのアクションを紛失(またはそれらを追加する方法)のためにログバック?

答えて

2

カスタムアペンダーの可能性があります。

extends AppenderBase<ILoggingEvent> 

このAppenderBaseは、内部にエンコーダ/パターンを実装していませんが、コンソールアペンダーを見ると、オブジェクトとして持っているものを拡張します。

したがって、エンコーダ/パターンをオブジェクトにマップすることはできません。

アペンダーall togeherから削除してください。

... 
<appender name="dashcamAppender" class="com.dcf.iqunxing.fx.dashcam.agent.log.appender.logback.DashcamAppender"> 
    <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
     <level>TRACE</level> 
    </filter> 
</appender> 
... 

これらを使用するには、Appenderクラスを変更して実装する必要があります。

関連する問題