首页 > 技术文章 > log4j2与log4j的区别与使用指导

luckyna 2019-11-27 17:20 原文

一、log4j2配合slf4j使用:


log4j2所需5个jar包:

1.log4j-api-2.3.jar
2.log4j-core-2.3.jar
3.log4j-slf4j-impl-2.2.jar
4.log4j-web-2.2.jar
5.slf4j-api-1.7.21.jar

log4j2依赖:
log4j-api-2.8.2.jar
log4j-core-2.8.2.jar
log4j2和slf4j桥接依赖:
log4j-slf4j-impl-2.8.2.jar
slf4j依赖:
slf4j-api-1.7.25.jar

日志配置文件:log4j2.xml

参考:
https://www.cnblogs.com/littleapple/p/10880318.html

二、slf4j+log4j组合使用模式:
1. slf4j-api-1.5.11.jar
slf4j 和log4j 连接的桥梁 slf4j-log4j12:
2. slf4j-log4j12-1.5.11.jar
3. log4j-1.2.15.jar

配置文件:log4j.properties(也可以是 log4j.xml)

 

参考:
https://www.cnblogs.com/lujiango/p/8573411.html

 

在eclipse里debug时查看 到底使用的哪个日志记录器文件,可以在eclipse里做如下配置:
在debug as 的 debug configuration配置页面的 参数配置选项添加 -Dlog4j.debug 。


会打印出如下日志:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/xxx/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/xxx/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.11.2/log4j-slf4j-impl-2.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 代表使用了slf4j-log4j12-1.7.25.jar 包,因为这个包里有org.slf4j.impl.Log4jLoggerFactory这个类,它是 log4j和slf4j的转换连接类,因此它会调用log4j.properties.不会调用 log4j2.xml。
log4j:WARN No appenders could be found for logger (org.springframework.data.repository.config.RepositoryConfigurationDelegate).

推荐阅读