java.lang.ClassNotFoundException:net.logstash.logback.encoder.LogstashEncoder
Posted
技术标签:
【中文标题】java.lang.ClassNotFoundException:net.logstash.logback.encoder.LogstashEncoder【英文标题】:java.lang.ClassNotFoundException: net.logstash.logback.encoder.LogstashEncoder 【发布时间】:2018-06-25 21:49:19 【问题描述】:我是 Scala 新手,我正在尝试为现有的 sbt 项目生成 json 格式的日志,但我收到以下错误 -
java.lang.ClassNotFoundException: net.logstash.logback.encoder.LogstashEncoder
我已将这些依赖项添加到 build.sbt 中
"net.logstash.logback" % "logstash-logback-encoder" % "4.11",
"ch.qos.logback" % "logback-core" % "1.2.3",
"ch.qos.logback" % "logback-access" % "1.2.3"
我的 logback.xml 看起来像这样 -
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>app.log</file>
<append>true</append>
<!--<encoder>
<pattern>%dateyyyy-MM-dd %XakkaTimestamp %-5level[%thread] %logger1 - %msg%n</pattern>
</encoder>-->
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE"/>
</root>
</configuration>
Scala 版本 2.12.3 SBT 版本 1.0.3
我可能会出错,任何帮助将不胜感激。
【问题讨论】:
你应该检查这个编码器类是否存在于你的应用的类路径中。 你修好了吗?出了什么问题? 它“应该”在那个 logstash-logback-encoder jar 中,仔细检查它是否成功... 【参考方案1】:我在 Jenkins 中遇到了同样的问题。但我没有以 json 格式进行日志记录。我使用了akka-http
,它有SLF4J/logback
用于日志记录。
而这个logback.xml
解决了我的问题:
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<pattern>%XakkaTimestamp %-5level[%thread] %logger0 - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>akka.log</file>
<append>true</append>
<encoder>
<pattern>%dateyyyy-MM-dd %XakkaTimestamp %-5level[%thread] %logger1 - %msg%n</pattern>
</encoder>
</appender>
<logger name="akka" level="DEBUG"/>
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
不确定它是否能解决您的问题。很想知道有关该问题的更多详细信息。
【讨论】:
以上是关于java.lang.ClassNotFoundException:net.logstash.logback.encoder.LogstashEncoder的主要内容,如果未能解决你的问题,请参考以下文章