基于SLF4J,可以无缝的将log4j切换到logback。
<slf4j-version>1.7.5</slf4j-version><log4j-over-slf4j-version>1.7.5</log4j-over-slf4j-version><logback-version>1.1.7</logback-version>
......<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j-version}</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>${log4j-over-slf4j-version}</version></dependency><dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback-version}</version></dependency><dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback-version}</version></dependency>
注意有的jar包可能间接引用了log4j,此时需要exclusions掉,如:
查找哪些jar包间接引用了log4j:打开pom.xml——>切换到Dependency Hierarchy——>搜索log4j。
logback.xml例子参考:https://files.cnblogs.com/files/acyouai/logback-example.xml
系统中log4j.properties无用了,可以删掉
有的系统可能还是用的log4j在打日志,原因可能是maven中部分包间接的引用了log4j的包导致。需要在代码中显示的将log4j的引用改为slf4j。
如果用了lombok,只需将注解@log4j替换为@Slf4j如果是显示的定义log实例,只需将private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
替换为private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
转载于:https://www.cnblogs.com/acyouai/p/8440955.html