json - java.lang.ClassNotFoundException : net.logstash.logback.encoder.LogstashEncoder

标签 json scala logging sbt slf4j

我是 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>%date{yyyy-MM-dd} %X{akkaTimestamp} %-5level[%thread] %logger{1} - %msg%n</pattern>
        </encoder>-->
        <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

Scala Version 2.12.3 SBT Version 1.0.3

如果我可能出错,任何帮助将不胜感激。

最佳答案

我在 Jenkins 中遇到了同样的问题。但我没有以 json 格式进行日志记录。我使用了akka-http,它有SLF4J/logback用于日志记录。

这个 logback.xml 解决了我的问题:

<configuration>
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <target>System.out</target>
         <encoder>
             <pattern>%X{akkaTimestamp} %-5level[%thread] %logger{0} - %msg%n</pattern>
         </encoder>
     </appender>

     <appender name="FILE" class="ch.qos.logback.core.FileAppender">
         <file>akka.log</file>
         <append>true</append>
         <encoder>
             <pattern>%date{yyyy-MM-dd} %X{akkaTimestamp} %-5level[%thread] %logger{1} - %msg%n</pattern>
         </encoder>
     </appender>

     <logger name="akka" level="DEBUG"/>

     <root level="DEBUG">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="FILE"/>
     </root>
 </configuration>

不确定它是否能解决您的问题。很想了解有关该问题的更多详细信息。

关于json - java.lang.ClassNotFoundException : net.logstash.logback.encoder.LogstashEncoder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48293912/

相关文章:

json - JSON Patch规范的解释

java - Scala 和接口(interface)

java - Scala 中的 Spark UDF 用于提取相关数据

通过 HTTPS 443 进行 Java 远程日志记录

json - GSON/JSON : Weird special char (umlaut) issue

json - 如何使用 jq 通配符

javascript - 引用包含点的 json 字段名称

scala - Lift Web 框架的开源应用程序

logging - 如何控制机器人框架中纯文本调试文件的日志级别?

logging - WSO2 分布式日志记录