Log4j
- Log4j是一个功能强大的日志组件,提供方便的日志记录功能
写一个入门的实例
1.新建一个java工程,导入log4j的jar包
log4j-api-2.6.2.jar
log4j-core-2.6.2.jar
2.src同级下创建一个log4j2的xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<!-- status属性表示log4j本身的日志打印级别 -->
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,
如果设置为WARN,则低于WARN的信息都不会输出。对于Loggers中level的定义同样适用。 -->
<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>
3.编写一个log4j的测试类
package wei.wang;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Log4j2Test {
public static void main(String[] args) {
Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);
System.out.println(logger);
logger.trace("trace level");
logger.debug("debug level");
logger.info("info level");
logger.warn("warn level");
logger.error("error level");
logger.fatal("fatal level");
}
}
4.输出测试结果
控制台输出结果
:ERROR in 1d16e93
15:52:59.429 [main] ERROR - error level
15:52:59.430 [main] FATAL - fatal level
5. log4j2.xml文件
xml文件中有一个根节点Configuration,有一个status属性表示log4j打印日志的级别。根节点下是Appenders节点,表示日志的输出目的地,Console下的PatternLayout定义了输出日志时的格式。
%d{HH:mm:ss.SSS} //表示输出到毫秒的时间
%t //输出当前线程名称
%-5level //输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0
%logger //输出logger名称,因为Root Logger没有名称,所以没有输出
%msg //日志文本
%n //换行
其他常用的占位符有:
%F //输出所在的类文件名,如Client.java
%L //输出行号
%M //输出所在方法名
%l //输出语句所在的行数, 包括类名、方法名、文件名、行数
最后是Logger的配置,这里只配置了一个Root Logger。