在 Spring Boot 中,日志系统的设置相对灵活,Spring Boot 默认使用 Logback 作为日志框架,同时也支持其他日志框架如 Log4j2 等。以下将详细介绍如何在 Spring Boot 中进行日志设置。
1. 使用默认日志配置
Spring Boot 默认的日志配置已经能够满足大多数基本需求。当你创建一个 Spring Boot 项目时,它会自动配置 Logback 作为日志框架,并将日志输出到控制台。
示例代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LoggingExampleApplication implements CommandLineRunner {
private static final Logger logger = LoggerFactory.getLogger(LoggingExampleApplication.class);
public static void main(String[] args) {
SpringApplication.run(LoggingExampleApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
logger.debug("这是一条调试级别的日志");
logger.info("这是一条信息级别的日志");
logger.warn("这是一条警告级别的日志");
logger.error("这是一条错误级别的日志");
}
}
代码解释
- 使用
org.slf4j.Logger
和org.slf4j.LoggerFactory
来创建和使用日志记录器。 - 默认情况下,Spring Boot 的日志级别是
INFO
,所以DEBUG
级别的日志不会输出。
2. 修改日志级别
你可以通过配置文件来修改日志级别。在 application.properties
或 application.yml
中进行设置。
在 application.properties
中设置
# 设置根日志级别为 DEBUG
logging.level.root=DEBUG
# 设置特定包的日志级别
logging.level.com.example=DEBUG
在 application.yml
中设置
logging:
level:
root: DEBUG
com.example: DEBUG
3. 配置日志输出到文件
如果你想将日志输出到文件,可以在配置文件中进行相应设置。
在 application.properties
中设置
# 设置日志文件的路径和名称
logging.file.name=myapp.log
# 设置日志文件的最大大小
logging.file.max-size=10MB
# 设置日志文件的最大保存天数
logging.file.max-history=7
在 application.yml
中设置
logging:
file:
name: myapp.log
max-size: 10MB
max-history: 7
4. 使用自定义日志配置文件
如果你需要更复杂的日志配置,可以使用自定义的日志配置文件。
使用 Logback 自定义配置
在 src/main/resources
目录下创建 logback-spring.xml
文件。
<?xml version="1.0" encoding="UTF-8"?>
<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>
<maxHistory>30</maxHistory>
</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>
<!-- 设置特定包的日志级别 -->
<logger name="com.example" level="DEBUG" />
</configuration>
代码解释
- 定义了两个
appender
:CONSOLE
用于将日志输出到控制台,FILE
用于将日志输出到文件。 - 通过
root
标签设置根日志级别,并指定使用哪些appender
。 - 通过
logger
标签设置特定包的日志级别。
5. 切换日志框架
如果你想使用其他日志框架,如 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
文件进行日志配置。
通过以上方法,你可以根据自己的需求灵活设置 Spring Boot 项目的日志系统。
本文来自博客园,作者:del88,转载请注明原文链接:https://www.cnblogs.com/del88/p/18752720
分类:
SpringBoot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2017-03-05 IntelliJ IDEA 建空包合并问题。
2013-03-05 SameText、CompareStr、CompareText - 字符串比较
2013-03-05 FASTREPORT 动态创建 动态增加函数(其它组建原理一样)
2012-03-05 LocalDB 的安装过程