基于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依赖树
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。