解决springboot整合logback-spring.xml后无法生成日志文件以及控制台不输出debug级别的日志
·
解决springboot整合logback-spring.xml后控制台不输出debug级别的日志
解决无法生成日志文件
产生原因:logback日志框架只能加载特定名称的配置文件,无法加载我们自定义的logback-spring.xml这个名字的配置文件,下面是官方文档的描述
- Logback默认配置的步骤(官方文档的原话)
- Logback 尝试查找名为* logback-test.xml * 在 Classpath 中的文件。
- 如果未找到此类文件,则 logback 尝试查找名为* logback.groovy * 在 Classpath 中的文件。
- 如果找不到这样的文件,它将检查文件* logback.xml * 在 Classpath 中 …
- 如果找不到此类文件,则通过在类中查找文件* META-INF\services\ch.qos.logback.classic.spi.Configurator *,使用服务提供者加载设施(在 JDK 1.6 中引入)来解决com.qos.logback.classic.spi.Configurator接口的实现。路径。其内容应指定所需的
Configurator实现的完全限定的类名。- 如果以上方法均未成功,则 logback 会使用BasicConfigurator自动进行自我配置,这会将日志输出定向到控制台。
根据上述的步骤,可知容器加载不到logback-spring.xml这个名称的配置文件,所以我们必须要让框架发现我们的配置文件,主要有以下两种方法:
- 将名称改为logback-spring.xml或者logback.xml即可
- 在配置文件中指定对应名称的配置文件,例如:
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)]](https://i-blog.csdnimg.cn/blog_migrate/6a7aeef6e7acc0e9bbee70a58b98e9de.png)
发现只打印了warn级别和error级别的日志,我就去看了一下我的配置文件,我发现我去声明包的日志级别时,声明错了,我的项目应该是在com.zky下,而我写成了com.zky.community
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5G85zdpt-1644306081624)(C:\Users\zky\AppData\Roaming\Typora\typora-user-images\image-20220208153553967.png)]](https://i-blog.csdnimg.cn/blog_migrate/c489101ae8b2e6947e5c81b1c7c1be7e.png)
修改后
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lJtOwMjH-1644306081624)(C:\Users\zky\AppData\Roaming\Typora\typora-user-images\image-20220208153603398.png)]](https://i-blog.csdnimg.cn/blog_migrate/e8413fe8de6c1116e642ded8d75c2595.png)
原因:由于我使用的是slf4j来作为日志处理,而slf4j的配置文件的包下的默认日志级别是info,低于info级别的信息都不会被打印(例如debug,trace),所以我们需要保证我们需要去debug所在类的日志级别是debug。
最终结果:成功打印!!!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HgSoXUqo-1644306081625)(C:\Users\zky\AppData\Roaming\Typora\typora-user-images\image-20220208153945055.png)]](https://i-blog.csdnimg.cn/blog_migrate/9785ef566b486e79603a1d4ff84e6603.png)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)