基于logback.xml不生效问题的解决
作者:基础不扎实的计算机小白
这篇文章主要介绍了基于logback.xml不生效问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
logback.xml不生效问题
如果不确定logback.xml 不生效是否生效可以更改后面的root

把ALL改成OFF看是否还会打印日志,如果打印,证明配置没有生效
原因1
logback配置文件没有放在src目录。
如果不知道放在哪里就在主程序运行下列代码找到路径位置,在电脑中搜索改路径将配置文件放在该路径下:
// 获取classpath路径
String s = Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("classpath => " + s );
// 获取classpath路径
String path = 这个是你的主函数名.class.getResource("/").toString();
System.out.println("classpath => " + path);这样就可以了!
原因2
如果原因1不行,也确定了配置文件再src下,那可能就是你的配置文件命名有问题,可以将配置文件命名改为logback.xml或者logback-test.xml也行。
这样就OK咯。
logback.xml不能被加载,logback不能被执行,logback.xml 无法生效,slf4j日志样式输出失败
1. 原因
logback.xml 无法被加载, 尝试了好久还是失败,哎,最后新建工程竟然可以,所以说还是项目的问题;
原来项目依赖了两个slf4j.jar,是版本冲突了;

2. 查找原因
idea Terminal 输入: mvn dependency:tree
发现是com.baidu.aip 依赖了旧版本
mvn dependency:tree

3. 解决

<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.11.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>4. 其他参考
多依赖过滤
<--多依赖过滤-->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<version>0.94.17</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>问题排查
1. 检查logback.xml 是否在resource目录下, 名字是否错误,后缀是否正确等;
2. 检查引用jar包版本是否匹配
3. 检查是否依赖过多slf4j.jar
4. 使用 mvn dependency:tree 查看maven依赖树
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
