1.简述
SpringBoot日志系统默认使用的是Logback,灵活性不高,很多时候我们需要使用Log4j或者Log4j2。
2.Log4j2集成说明
(1)添加Log4j2依赖
使用Log4j2,需要从中去掉spring-boot-starter-web依赖,同时显示声明使用Log4j2的依赖jar包,具体如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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>
(2)Log4j2.xml配置
resources文件夹下创建log4j2.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="info">
<Appenders>
<!--将日志在控制台输出-->
<Console name="Console" target="SYSTEM_OUT">
<!--日志输出的格式-->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n"/>
</Console>
<!--将日志输出到文件中,fileName:文件的路径和名称,filePattern:采用某种输出日志的规则,日志的路径名和日志文件名称格式-->
<RollingFile name="infofile" fileName="logs/info.log" filePattern="logs/info.log.%d{yyyy-MM-dd}">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
</PatternLayout>
<!--过滤日志级别,确保该文件中只能保存INFO和WARN级别的日志-->
<Filters>
<ThresholdFilter level="INFO"/>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<!--日志文件产生的策略,每隔一天产生一个新的日志文件-->
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<RollingFile name="errorfile" fileName="logs/error.log" filePattern="logs/error.log.%d{yyyy-MM-dd}">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
</Appenders>
<loggers>
<Logger name="info" level="INFO">
<AppenderRef ref="infofile" />
</Logger>
<Logger name="error" level="ERROR">
<AppenderRef ref="errorfile" />
</Logger>
<Root>
<AppenderRef ref="Console"/>
</Root>
</loggers>
</configuration>
自定义文件名的需要在application.[yml、properties]文件中指定配置文件名,示例如下:
logging:
config: classpath:log4j2.xml