2016-05-04 19 views
7

Bir Addender yazdırabilmek için logosunu ElasticSearch'e yazdım ve bu eklentiyi logback.xml dosyasına ekledim. Tek bir uygulamada uyguladım ve ES'den günlük kayıtları aldım.logback: [encoder] için geçerli bir eylem yok, geçerli ElementPath [[configuration] [appender] [encoder]]

Ama başka bir uygulama içine uyguladığınızda, logback aşağıdaki hata gösterir:

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]] 

Benim logback.xml geçerli:

... 
<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> 
... 

(veya bunları nasıl ekleneceği) için bazı işlemleri Kayıp yeniden giriş yap?

cevap

2

Muhtemelen özel ekleyicinizden kaynaklanıyor.

extends AppenderBase<ILoggingEvent> 

Bu AppenderBase içindeki kodlayıcı/desen uygulamıyor - ama konsolda bakarsanız o nesneler olarak onları var biri uzanır appender. Böylece, kodlayıcı/desenleri nesnenize eşleyemezsiniz.

Onları yalnızca tüm alıcıdan kaldırmak için kaldırın.

... 
<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> 
... 

Bunları kullanmak isterseniz, bunları uygulamak için Appender sınıfınızı değiştirmeniz gerekir.

İlgili konular