log4j2简介:
Apache Log4j 2 is an upgrade to Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides many of the improvements available in Logback while fixing some inherent problems in Logback’s architecture.
Apache Log4j 2是Log4j的升级版,它比前一代Log4j 1.X提供了显著的改进。提供了许多Logback中可用的改进,同时修复了Logback架构中的一些固有问题。
——摘自log4j2官网
1.log4j日志等级介绍
1.1 默认等级介绍
Log4J 内置的标准日志级别*
ALL 打开所有日志
TRACE 一般不使用
DEBUG 对调试应用程序有帮助的,打印运行信息
INFO 打印主要的信息,不能乱用,避免打印过多日志
WARN 警示信息
ERROR 错误事件,系统继续运行,打出错误和异常信息
FATAL 重大错误,停止程序
1.2 自定义日志等级
如果默认的等级不能满足你的开发需求,可以自定义日志输出等级。
<CustomLevels>
<CustomLevel name="DIAG" intLevel="350" />
<CustomLevel name="NOTICE" intLevel="450" />
<CustomLevel name="VERBOSE" intLevel="550" />
</CustomLevels>
在使用时通过 Logger.log()方法调用自定义日志级别
2.配置文件设置
2.1 自定义FLOW输出级别,并输出到控制台
配置log4j2.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<CustomLevels>
<CustomLevel name="FLOW" intLevel="234" />
</CustomLevels>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="TRACE" additivity="false">
<AppenderRef ref="console"/>
</Root>
</Loggers>
</Configuration>
2.2 添加maven依赖
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.17.2</version>
</dependency>
3.实战测试
3.1 测试类
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Log4jTest {
public static void main(String[] args) {
Logger logger = LogManager.getLogger();
logger.debug("It is a debug logger.");
logger.error("It is an error logger.");
logger.fatal("It is a fatal logger.");
logger.info("It is a info logger.");
logger.trace("It is a trace logger.");
logger.warn("It is a warn logger.");
logger.log(Level.getLevel("FLOW"), "Tt is a flow logger");
}
}
3.2 运行结果展示
4.总结
log4j日志管理框架可以很好的管理输出的日志内容,在调试,开发,运行等不同阶段配置不同的日志等级,有效提高了开发效率。
5.拓展
log4j还可以配置日志输出到文件、数据库、邮件等位置,有需要的小伙伴自行探索一下,推荐参阅官方文档。
https://logging.apache.org/log4j/2.x/articles.html