环境
操作系统:win10
log4j2版本: 2.11.0
准备
下载jar
包
官网:https://logging.apache.org/log4j/2.x/download.html
把jar包放入到项目中去
开始使用
假设我们要使用log4j2
,我们一般是先声明成一个静态成员变量:
private static final Logger logger = LogManager.getLogger(MyApp.class);
// 或者
private static final Logger logger = LogManager.getLogger(MyApp.class.getName());
声明好logger
后,我们就可以开始使用它了。
假设我们有这么一个程序:
package test;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Hello {
private static Logger logger = LogManager.getLogger(Hello.class.getName());
public void getHello() {
logger.entry();
logger.trace("我是trace");
logger.info("我是info信息");
logger.error("我是error");
logger.fatal("我是fatal");
logger.trace("退出程序.");
logger.exit();
}
public static void main(String[] args) {
new Hello().getHello();
}
}
如果没有自定义配置文件,执行上面的方法后,在控制台显示如下:
10:45:05.641 [main] ERROR test.Hello - 我是error
10:45:05.644 [main] FATAL test.Hello - 我是fatal
从结果上看出,只有>=error级别的日志打印出来了。
这是因为Log4j有一个默认的配置,它的日志级别是ERROR,输出只有控制台。
如果我已经定义好了日志,我把日志级别改成了TRACE,输出会变成下面这样:
10:48:21.326 [main] TRACE test.Hello - Enter
10:48:21.330 [main] TRACE test.Hello - 我是trace
10:48:21.331 [main] INFO test.Hello - 我是info信息
10:48:21.331 [main] ERROR test.Hello - 我是error
10:48:21.331 [main] FATAL test.Hello - 我是fatal
10:48:21.331 [main] TRACE test.Hello - 退出程序.
10:48:21.331 [main] TRACE test.Hello - Exit
配置文件
log4j2
默认下载包里是没有配置文件的。下面这个配置文件等于缺省配置:
https://logging.apache.org/log4j/2.x/manual/configuration.html
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
只需要把上面level="error"
改为level="trace"
就可以,看到刚才的效果!
由于这篇是简单使用,就讲这些,下篇接着讲。