1. 为什么不是log4j?
springBoot 只有1.3.x和1.3.x以下版本才支持log4j的日志配置,1.3.x以上版本只支持log4j2,logback的日志配置
3. 新建module springboot-log4j2
,将base项目中的配置复制来一份
log4j
2. 引入依赖
pom.xml加入log4j2依赖,并同时把spring boot默认的logging去掉
<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>
3. 增加配置文件
-
resource
目录下增加application.yml,添加如下配置
server:
port: 8081
-
resource
目录下增加文件log4j2.xml
参考官网配置log4j2,可以看到log4j2
支持xml
、json
和yml
,我们这里拿xml
举例。具体配置如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<properties>
<!-- 文件输出格式 -->
<property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
<Property name="instance">spring-boot-log4j2-log</Property>
<Property name="log.dir">D:\logs\log4j2</Property>
</properties>
<appenders>
<Console name="CONSOLE" target="system_out">
<PatternLayout pattern="${PATTERN}"/>
</Console>
<File name="File" fileName="${log.dir}/${instance}.log">
<PatternLayout pattern="${PATTERN}"/>
</File>
</appenders>
<loggers>
<!-- root logger 配置 -->
<root level="info">
<appenderref ref="CONSOLE"/>
<appenderref ref="File"/>
</root>
</loggers>
</configuration>
阅读如上配置,我们发现,我们配置了console和file,把日志信息会以指定的格式输出到控制台和指定目录的一个文件中。如果我们要配置更为复杂的日志文件输出,如按日期、按大小拆分文件,可以参考log4j2
官网链接https://logging.apache.org/log4j/2.x/manual/configuration.html
4. 验证
启动项目,控制台输出及文件日志如下截图
控制台日志
文件日志
网友评论