我编写了一个用于回溯的Appender并将日志保存到ElasticSearch中,然后将此appender添加到logback.xml。我将它应用到一个应用程序中,我从ES获得了日志。
但是当我将它应用到另一个应用程序时,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 ch.qos.logback.core.joran.spi.Interpreter@110:12 - no applicable action for [encoder], current ElementPath is [[configuration][appender][encoder]]
16:18:26,080 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@111: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>
...
丢失一些操作(或如何添加它们)进行回溯?
答案 0 :(得分:5)
这可能是由于您的自定义附加功能。
extends AppenderBase<ILoggingEvent>
这个AppenderBase并没有在其中实现编码器/模式 - 但是如果你看一下控制台appender它会扩展一个将它们作为对象。
因此,它无法将编码器/模式映射到您的对象上。
只需将它们从appender中删除即可。
...
<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类来实现它们。