- 删除原有的logging依赖并添加log4j依赖,原有自带依赖不删除干净会导致日志文件写入失败。
<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> <version>3.0.1</version> </dependency>
- 在resource目录下添加配置文件log4j.xml,并在pom.xml文件中指明引用位置
<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.yml</include> <include>*.yml</include> <include>**/*.xml</include> <include>*.xml</include> </includes> </resource> </resources> </build>
- 在application.yml中指明日志的引用文件
logging: discover: classpath: log4j2.xml
- log4j.xml配置文件内容
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="fatal"> <Properties> <Property name="baseDir" value="D://log"/> </Properties> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="[%d{MM:dd HH:mm:ss.SSS}] [%level] [%logger{36}] - %msg%n"/> </Console> <RollingFile name="debug_appender" <!-- fileName="${baseDir}/error.log"--> filePattern="${baseDir}/%d{yyyy-MM-dd}/demo%i.log"> <!-- TimeBasedTriggeringPolicy 会每天生成名字一样的文件覆盖前一天的文件--> <!-- 不给fileName赋值即可每天生成一份日志并不覆盖之前的日志--> <Filters> <ThresholdFilter level="debug"/> </Filters> <!-- 日志格式 --> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> <Policies> <!-- 每天转存 --> <TimeBasedTriggeringPolicy interval="1" modulate="true"/> <SizeBasedTriggeringPolicy size="10MB"/> </Policies> </RollingFile> </Appenders> <Loggers> <Root level="debug"> <AppenderRef ref="Console"/> <AppenderRef ref="debug_appender"/> <AppenderRef ref="info_appender"/> <AppenderRef ref="error_appender"/> </Root> </Loggers> </Configuration>
springBoot使用log4j每天生成新的日志文件夹
于 2023-03-23 17:12:11 首次发布