因为存在前身Log4j,而且都是Apache下的项目,不管是jar包名称还是package名称,看起来都很相似,导致有些人分不清自己用的是Log4j还是Log4j2。这里给出几个辨别方法:
-
Log4j2分为2个jar包,一个是接口 log4j-api- 版 本 号 . j a r , 一 个 是 具 体 实 现 l o g 4 j − c o r e − {版本号}.jar ,一个是具体实现 log4j-core- 版本号.jar ,一个是具体实现 log4j−core−{版本号}.jar 。Log4j只有一个jar包 log4j-${版本号}.jar 。
-
Log4j2的版本号目前均为2.x。Log4j的版本号均为1.x。
-
Log4j2的package名称前缀为 org.apache.logging.log4j 。Log4j的package名称前缀为 org.apache.log4j 。
1.2 Log4j2 Lookup
=================
Log4j2的Lookup主要功能是通过引用一些变量,往日志中添加动态的值。这些变量可以是外部环境变量,也可以是MDC中的变量,还可以是日志上下文数据等。
下面是一个简单的Java Lookup例子和输出:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.ThreadContext;
public class Log4j2Lookup {
pu