解决springboot整合logback-spring.xml后无法生成日志文件以及控制台不输出debug级别的日志

解决springboot整合logback-spring.xml后控制台不输出debug级别的日志

解决无法生成日志文件

产生原因:logback日志框架只能加载特定名称的配置文件,无法加载我们自定义的logback-spring.xml这个名字的配置文件,下面是官方文档的描述

  • Logback默认配置的步骤(官方文档的原话)
  1. Logback 尝试查找名为* logback-test.xml * 在 Classpath 中的文件。
  2. 如果未找到此类文件,则 logback 尝试查找名为* logback.groovy * 在 Classpath 中的文件。
  3. 如果找不到这样的文件,它将检查文件* logback.xml * 在 Classpath 中
  4. 如果找不到此类文件,则通过在类中查找文件* META-INF\services\ch.qos.logback.classic.spi.Configurator *,使用服务提供者加载设施(在 JDK 1.6 中引入)来解决com.qos.logback.classic.spi.Configurator接口的实现。路径。其内容应指定所需的Configurator实现的完全限定的类名。
  5. 如果以上方法均未成功,则 logback 会使用BasicConfigurator自动进行自我配置,这会将日志输出定向到控制台。

根据上述的步骤,可知容器加载不到logback-spring.xml这个名称的配置文件,所以我们必须要让框架发现我们的配置文件,主要有以下两种方法:

  1. 将名称改为logback-spring.xml或者logback.xml即可
  2. 在配置文件中指定对应名称的配置文件,例如:
logging:
  config: classpath:logback-spring.xml  #开发和部署时的配置

解决控制台不输出debug级别的日志

今天我去配置项目的拦截器的时候,想在拦截器里面打印一些debug的日志信息,发现一直无法打印出来,而日志文件能够正常的记录,我就自己去测试了一下,发现了最终的问题所在。

首先我去检查了我日志文件中对于debug级别的日志处理,我发现没有任何问题

 <!-- console -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debug</level>
        </filter>
    </appender>

然后就去写了一个测试类去测试

@SpringBootTest
public class LoggerTest {
       Logger logger = LoggerFactory.getLogger(LoggerTest.class);
     @Test
    void logTest1(){
        logger.debug("debug info");
        logger.warn("warn info");
        logger.error("error info");
    }
}

运行结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wGGIWGUm-1644306081622)(C:\Users\zky\AppData\Roaming\Typora\typora-user-images\image-20220208153421363.png)]

发现只打印了warn级别和error级别的日志,我就去看了一下我的配置文件,我发现我去声明包的日志级别时,声明错了,我的项目应该是在com.zky下,而我写成了com.zky.community

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5G85zdpt-1644306081624)(C:\Users\zky\AppData\Roaming\Typora\typora-user-images\image-20220208153553967.png)]

修改后

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lJtOwMjH-1644306081624)(C:\Users\zky\AppData\Roaming\Typora\typora-user-images\image-20220208153603398.png)]

原因:由于我使用的是slf4j来作为日志处理,而slf4j的配置文件的包下的默认日志级别是info,低于info级别的信息都不会被打印(例如debug,trace),所以我们需要保证我们需要去debug所在类的日志级别是debug。

最终结果:成功打印!!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HgSoXUqo-1644306081625)(C:\Users\zky\AppData\Roaming\Typora\typora-user-images\image-20220208153945055.png)]

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以为您提供springboot配置logback-spring.xml文件的大全。以下是相关内容: 1. logback.xml 的基本配置: <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="30 seconds" debug="true"> </configuration> 2. 设置日志级别: <!-- 定义日志级别 --> <root level="INFO"> <!-- 定义 Appender --> </root> 3. 使用 RollingFileAppender: <!-- 输出日志文件的 Appender --> <appender name="rollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/log/app.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/log/app.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <maxFileSize>20MB</maxFileSize> <maxHistory>30</maxHistory> <totalSizeCap>100GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern> <charset>utf8</charset> </encoder> </appender> 4. 使用 ConsoleAppender: <!-- 定义输出控制台的 Appender --> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>utf8</charset> </encoder> </appender> 5. 过滤某些级别日志: <!-- 过滤不需要的日志级别 --> <appender name="Console" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <encoder> <pattern>%d %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> 以上是关于springboot配置logback-spring.xml文件的大全,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值