【日志框架与全局日志管理】3.log4j2日志框架整合与使用

编程

一、引入maven依赖

Spring Boot默认使用LogBack,但是我们没有看到显示依赖的jar包,其实是因为所在的jar包spring-boot-starter-logging都是作为spring-boot-starter-web或者spring-boot-starter依赖的一部分。
如果这里要使用Log4j2,需要从spring-boot-starter-web中去掉spring-boot-starter-logging依赖,同时显示声明使用Log4j2的依赖jar包,具体如下:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-logging</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-log4j2</artifactId>

</dependency>

另外log4j是之前使用比较广泛的软件,容易与log4j2发生冲突,如果冲突将它从相应的软件里面排除掉,比如:dozer

<dependency>

<groupId>net.sf.dozer</groupId>

<artifactId>dozer</artifactId>

<version>5.4.0</version>

<exclusions>

<exclusion>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

</exclusion>

</exclusions>

</dependency>

 

二、添加配置文件log4j2-spring.xml

在resources目录下新建一个log4j2-spring.xml文件。

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<Appenders>

<Console name="CONSOLE" target="SYSTEM_OUT">

<PatternLayout charset="UTF-8" pattern="[%-5p] %d %c - %m%n" />

</Console>

<RollingFile name="runtimeFile" fileName="./logs/boot-launch.log" filePattern="./logs/boot-launch-%d{yyyy-MM-dd}.log"

append="true">

<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS Z} %level %class %line %thread %msg%n"/>

<Policies>

<TimeBasedTriggeringPolicy/>

</Policies>

<!-- 此行以下为自动清理日志的配置 -->

<DefaultRolloverStrategy>

<Delete basePath="./logs">

<!-- glob 项为需要自动清理日志的pattern -->

<IfFileName glob="*.log"/>

<!-- 30d 表示自动清理掉30天以前的日志文件 -->

<IfLastModified age="30d"/>

</Delete>

</DefaultRolloverStrategy>

<!-- 此行以上为自动清理日志的配置 -->

</RollingFile>

</Appenders>

<Loggers>

<root level="info">

<AppenderRef ref="CONSOLE" />

<AppenderRef ref="runtimeFile" />

</root>

</Loggers>

</configuration>

注意:关于log4j2的定时删除如果filePattern的粒度为HH,那么在中如果age=30d则不生效

如果自定义了文件名,需要在application.yml中配置。

 

三、测试

 

以上是 【日志框架与全局日志管理】3.log4j2日志框架整合与使用 的全部内容, 来源链接: utcz.com/z/512088.html

回到顶部