我有一个使用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)。任何帮助都将不胜感激!
发布于 2016-10-05 22:51:02
问题是我的错……我有嵌套的编码器声明。一旦我移除了它,一切都运行得很好。我想我发的太快了!
https://stackoverflow.com/questions/39876937
复制相似问题