java - logback:[encoder] 没有适用的操作,当前 ElementPath 是 [[configuration][appender][encoder]]

标签 java logging logback

我为 logback 编写了一个 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>
...

为 logback 丢失了一些操作(或如何添加它们)?

最佳答案

这可能是由于您的自定义 appender。

extends AppenderBase<ILoggingEvent> 

此 AppenderBase 并未在其中实现编码器/模式 - 但如果您查看控制台附加器,它会扩展一个将它们作为对象的附加器。

因此它无法将编码器/模式映射到您的对象上。

只需将它们一起从 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 类来实现它们。

关于java - logback:[encoder] 没有适用的操作,当前 ElementPath 是 [[configuration][appender][encoder]],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37022672/

相关文章:

java - 如何以一定的速率消费者QueueChannel?

c# - LoggingFactory 在第二次调用时处理

java - Spring Boot 中仅在请求记录 CommonsRequestLoggingFilter 之前设置

c# - Azure 应用程序配置重新加载失败时如何记录错误

java - 来自 Logback 的电子邮件,其中包含从 App.properties 文件读取的变量值

java - 制作一个 SIZE = 10 个员工对象的数组

java - Java中两个List<String>的有效交集?

java - Selenium 加载完整的网站

java - 显示 Hibernate SQL 的 Logback 记录器必须大写

java - 如何根据名称登录到不同的文件