依赖

本文主要围绕log4j2展开, 因此必然需要引入log4j2相关的核心依赖.

pom.xml

properties

2.17.0

dependency

org.apache.logging.log4j

log4j-core

${log4j2.version}

org.apache.logging.log4j

log4j-api

${log4j2.version}

log4j-core和log4j-api是套件, 使用相同版本, 如果只引入log4j-api会出现如下报错:

ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

单独使用

使用默认配置

Logger logger = LogManager.getLogger("origin");

logger.error("test origin log4j");

小结

log4j2可以不用任何配置直接使用, 此时使用的是默认配置, 优点是使用方便, 缺点是不适应各样场景自定义.

自定义配置

log4j2的配置核心类为org.apache.logging.log4j.core.config.Configuration, 支持多种格式实现:

上一小节中就是使用了默认配置DefaultConfiguration.

本节使用常用的xml方式演示.

log4j2-origin.xml

设置jvm参数-Dlog4j2.configurationFile="X:\\xx\\log4j2-origin.xml" 打印日志 private static final Logger logger = LogManager.getLogger(TestOriginLog4j2.class);

@Test

public void testXmlConfiguration() {

logger.error("test origin log4j");

}

小结

配置文件生效顺序:

log4j2在程序启动时会检查系统配置项log4j2.configurationFile,如果此配置项被设置,则优先采用此配置项指定的配置文件去解析加载;如果1中的系统配置项没有被指定,则按下面优先级顺序加载。首先寻找classpath下的log4j2-test.properties文件寻找classpath下的 log4j2-test.yaml 或者 log4j2-test.yml 文件寻找classpath下的 log4j2-test.json 或者 log4j2-test.jsn文件寻找classpath下的 log4j2-test.xml 文件如果上述test文件没有找到,则尝试寻找classpath下的 log4j2.yaml 或者 log4j2.yml 文件寻找classpath下的 log4j2.json或者 log4j2.jsn文件寻找classpath下的 log4j2.xml 文件如果上述配置文件都无法找到,则日志直接输出到控制台

log4j2配置示例

./app/log

%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%logger{0}:%line][%thread] %X{logger_id} - [TID: %X{EagleEye-TraceID}] %msg%n

filePattern="${baseLogDir}/app.log.%d{yyyy-MM-dd}">

filePattern="${baseLogDir}/debug.log.%d{yyyy-MM-dd}">

filePattern="${baseLogDir}/error.log.%d{yyyy-MM-dd}">

集成Slf4j

依赖

2.17.0

1.7.36

org.apache.logging.log4j

log4j-slf4j-impl

${log4j2.version}

org.slf4j

slf4j-api

${slf4j.version}

org.apache.logging.log4j

log4j-api

${log4j2.version}

org.apache.logging.log4j

log4j-core

${log4j2.version}

集成Spring

集成Spring Boot

springboot默认是用logback的日志框架的,所以需要排除logback,不然会出现jar依赖冲突的报错

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-logging

org.springframework.boot

spring-boot-starter-log4j2

com.lmax

disruptor

3.4.1

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: