随笔 - 809  文章 - 0 评论 - 144 阅读 - 770万

在 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.Loggerorg.slf4j.LoggerFactory 来创建和使用日志记录器。
  • 默认情况下,Spring Boot 的日志级别是 INFO,所以 DEBUG 级别的日志不会输出。

2. 修改日志级别

你可以通过配置文件来修改日志级别。在 application.propertiesapplication.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>

代码解释

  • 定义了两个 appenderCONSOLE 用于将日志输出到控制台,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 项目的日志系统。

posted on   del88  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 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 的安装过程
点击右上角即可分享
微信分享提示