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