在 Spring Boot 里,日志配置是一项重要的工作,而且 Spring Boot 对多种日志框架都提供了支持。下面为你详细介绍日志配置方法以及可用的日志框架。
可用的日志框架
Spring Boot 默认使用 Logback 作为日志框架,不过它也支持其他常见的日志框架,像 Log4j2、Java Util Logging 等。以下是几种常见日志框架的简要介绍:
- Logback:它是 Log4j 的继任者,具备高性能、灵活的配置和丰富的特性。Spring Boot 默认采用 Logback 作为日志框架。
- Log4j2:这是 Apache 开发的一款功能强大的日志框架,支持异步日志、插件化等特性。
- Java Util Logging:这是 Java 自带的日志框架,使用简单,但功能相对较少。
日志配置方法
1. 使用默认的 Logback 配置
Spring Boot 默认会自动配置 Logback,你只需在 application.properties
或者 application.yml
中进行简单配置即可。
application.properties 示例:
# 设置日志级别
logging.level.root=INFO
# 指定日志文件路径
logging.file.name=myapp.log
application.yml 示例:
logging:
level:
root: INFO
file:
name: myapp.log
2. 自定义 Logback 配置
如果你需要更复杂的配置,可以在 src/main/resources
目录下创建 logback.xml
文件。以下是一个简单的 logback.xml
示例:
<configuration>
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 文件输出 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>myapp.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>myapp.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 设置日志级别 -->
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
3. 使用 Log4j2 作为日志框架
若要使用 Log4j2,需在 pom.xml
中排除默认的 Logback 依赖,并添加 Log4j2 依赖:
<dependencies>
<!-- 排除默认的 Logback 依赖 -->
<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>
<!-- 添加 Log4j2 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
接着在 src/main/resources
目录下创建 log4j2.xml
文件进行配置:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="File" fileName="myapp.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
通过以上方法,你可以在 Spring Boot 中灵活地配置日志。