Java实战03之IDEA Spring Boot整合Log4j2多日志文件

作者:狼烟四起2024.01.17 17:41浏览量:4

简介:本文将介绍如何在IntelliJ IDEA中创建一个Spring Boot项目,并使用Log4j2实现多日志文件记录。我们将通过简单的步骤来整合Log4j2,并配置多个日志文件,以便更好地组织和管理日志信息。

在IntelliJ IDEA中创建一个Spring Boot项目的过程非常简单。首先,打开IDEA并选择“创建新项目”。在弹出的窗口中,选择“Spring Initializr”,填写项目名称和位置,然后点击“Next”。在接下来的页面上,选择所需的Spring Boot版本和依赖项,包括“Spring Web”和“Log4j2”(如果尚未包含),然后点击“Next”。在最后的页面上,确认项目设置,然后点击“Finish”。
完成项目创建后,打开项目的pom.xml文件,确保有以下Log4j2和Spring Boot Starter Logging依赖:

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-logging</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.logging.log4j</groupId>
  8. <artifactId>log4j-api</artifactId>
  9. <version>2.14.1</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.apache.logging.log4j</groupId>
  13. <artifactId>log4j-core</artifactId>
  14. <version>2.14.1</version>
  15. </dependency>
  16. </dependencies>

接下来,我们需要配置Log4j2。在项目的src/main/resources目录下,创建一个名为log4j2.xml的文件。在这个文件中,我们将定义多个日志文件及其相应的日志级别和处理器。以下是一个示例配置:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <Configuration status="WARN">
  3. <Appenders>
  4. <RollingFile name="File" fileName="logs/app.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}.log.gz">
  5. <PatternLayout>
  6. <pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n</pattern>
  7. </PatternLayout>
  8. <Policies>
  9. <TimeBasedTriggeringPolicy interval="1" modulate="true" />
  10. </Policies>
  11. </RollingFile>
  12. <RollingFile name="ErrorFile" fileName="logs/error.log" filePattern="logs/$${date:yyyy-MM}/error-%d{MM-dd-yyyy}.log.gz">
  13. <PatternLayout>
  14. <pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n</pattern>
  15. </PatternLayout>
  16. <Policies>
  17. <TimeBasedTriggeringPolicy interval="1" modulate="true" />
  18. </Policies>
  19. </RollingFile>
  20. </Appenders>
  21. <Loggers>
  22. <Root level="info">
  23. <AppenderRef ref="File" />
  24. </Root>
  25. <Root level="error">
  26. <AppenderRef ref="ErrorFile" />
  27. </Root>
  28. </Loggers>
  29. </Configuration>

在上述配置中,我们定义了两个滚动文件Appender,分别名为“File”和“ErrorFile”。第一个Appender将日志记录到名为app.log的文件中,并按照日期进行滚动。第二个Appender将错误日志记录到名为error.log的文件中,并按照日期进行滚动。每个Appender都使用了一个时间触发策略,该策略根据时间间隔来触发日志滚动。在Loggers部分,我们定义了两个Root Logger,一个用于记录info级别及以上的日志,另一个用于记录error级别及以上的日志。每个Root Logger都将其日志输出到相应的Appender中。
现在,我们可以使用Log4j2记录日志了。在Java代码中,使用SLF4J API记录日志,例如:
```java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyClass {
private static final Logger logger = LoggerFactory.