首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Logback不工作??不生成JSON

Logback不工作??不生成JSON
EN

Stack Overflow用户
提问于 2019-09-06 20:19:37
回答 2查看 684关注 0票数 0

我有以下Maven依赖文件:

代码语言:javascript
复制
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>6.1</version>
</dependency>

而logback.xml被放在资源文件夹中。

logback.xml是(由于堆栈溢出格式,类名分成两行):

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <conversionRule conversionWord="stacktrace"
    converterClass="net.logstash.logback.stacktrace.
    ShortenedThrowableConverter" />
  <appender name="JSON" class="ch.qos.logback.core.ConsoleAppender">
    <encoder 
      class="net.logstash.logback.encoder.
      LoggingEventCompositeJsonEncoder">
      <providers>
        <pattern>
          <pattern>
            {
            "timestamp": "%date{yyyy-MM-dd HH:mm:ss.SSS}",
            "level": "%level",
            "msg": "%msg",
            "stacktrace": "%stacktrace"
            }
          </pattern>
         </pattern>
     </providers>
   </encoder>
 </appender>
 <root level="info">
   <appender-ref ref="JSON"/>
 </root>
</configuration>

日志如下:

代码语言:javascript
复制
14:34:23,782 INFO  [x.y.Logger] (default task-15) Hello world!

日志不会以JSON格式输出。为什么?

我在想是不是Logback在运行。当应用程序启动时,Logback如何启动?我没有任何代码行调用它。我读到过Logback扫描logback.xml,但我怎么知道它正在运行??

Logback在新的Spring引导应用程序中运行良好,但这个应用程序是旧的JEE应用程序。

有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-26 20:53:49

我不得不加上

EAR META-INF中的jboss-deployment-structure.xml。

该文件的内容为:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>  
<jboss-deployment-structure>  
  <deployment>  
    <exclusions>
        <module name="org.slf4j" />
        <module name="org.slf4j.impl" />
    </exclusions>
  </deployment>  
</jboss-deployment-structure>
票数 0
EN

Stack Overflow用户

发布于 2019-09-06 21:09:04

尝试此编码器配置:

代码语言:javascript
复制
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
  <jsonGeneratorDecorator class="net.logstash.logback.decorate.PrettyPrintingJsonGeneratorDecorator"/>
    <timestampPattern>yyyy-MM-dd HH:mm:ss.SSS</timestampPattern>
    <providers>
        <timestamp/>
        <logLevel/>
        <message/>
        <stacktrace/>
    </providers>
</encoder>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57821924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档