SpringBoot集成Log4j2日志框架配置

版权申明:本文为原创文章,转载请注明原文出处

原文链接:https://blog.it-follower.com/posts/1347001124.html

Spring Boot 默认的日志框架是logback,改用log4j2的话,需要改写pom,web项目中需要排除spring-boot-starter-logging,再自行添加spring-boot-starter-log4j2依赖。

修改pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- 排除自带的logback -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 日志框架改用log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

修改application.yml

1
2
logging:
config: classpath:log4j2-spring-dev.xml

配置Log4j2文件log4j2-spring-dev.xml

在resources目录下,新建log4j2-spring-dev.xml。不同环境,建议使用不一样的配置文件log4j2-spring-{profile}.xml,开发环境可能只需要打印到控制台即可,而生产环境日志则需要打印到日志文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN" monitorInterval="30">

<Properties>
<!-- 日志文件保存目录 -->
<Property name="LOG_HOME">./logs</Property>
<!-- 控制台日志格式(带颜色) -->
<Property name="CONSOLE_LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property>
<!-- 普通日志格式 -->
<Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${sys:PID} --- [%15.15t] %-40.40c{1.} : %m%n%xwEx</Property>
</Properties>

<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${CONSOLE_LOG_PATTERN}"/>
</Console>

<!-- 每天生成一个日志文件 -->
<RollingFile name="dailyLog" fileName="${LOG_HOME}/yclouds.log" filePattern="${LOG_HOME}/yclouds-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1" />
</Policies>
</RollingFile>
</Appenders>

<Loggers>
<Root level="warn">
<!-- 输出到控制台 -->
<AppenderRef ref="console"/>
<!-- 输出到文件 -->
<!--<AppenderRef ref="dailyLog"/>-->
</Root>
<!-- 指定包com.yclouds日志级别为debug,其余包日志级别用Root的warn -->
<logger name="com.yclouds" level="debug"/>
</Loggers>
</configuration>

到此,SpringBoot集成Log4j2大功告成。

评论