首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【SpringBoot系列】SpringBoot中集成日志的几种方式?

  • 25-03-07 03:41
  • 3990
  • 6335
blog.csdn.net

579a429daf314744b995f37351b46548

强烈推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能

b004071ozy_05_amzn

在开发中,日志记录是保障应用程序健壮性、可维护性的重要手段。通过日志,我们可以记录系统的运行状态、捕获异常并进行调试。

在 Spring Boot 项目中集成日志记录,可以使用常见的日志框架如 Logback 或 Log4j2。

Spring Boot 默认使用的是 Logback,但你也可以根据需求选择其他框架。以下是几种常用的日志集成方法:

1. 使用 Spring Boot 默认的 Logback 日志框架

Spring Boot 内置了 Logback,并提供了默认的日志配置。只需在 application.properties 或 application.yml 中进行简单配置即可。

步骤:
  1. 引入依赖
    如果是标准的 Spring Boot 项目,通常不需要额外添加依赖,Logback 已经集成。如果你需要自定义日志框架,可以在 pom.xml 中手动引入依赖:

    
    
        org.springframework.boot
        spring-boot-starter-logging
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
  2. 基本配置
    可以在 application.properties 中进行基本的日志配置:

    # 控制台日志输出级别
    logging.level.root=INFO
    logging.level.com.yourpackage=DEBUG  # 定制某个包的日志级别
    # 日志文件输出
    logging.file.name=logs/spring-boot-app.log
    logging.file.path=logs  # 指定日志存储的路径
    logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n  # 控制台日志输出格式
    logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n  # 文件日志输出格式
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  3. 日志格式调整 可以通过 Logback 的 logback-spring.xml 文件进行更详细的配置。创建 src/main/resources/logback-spring.xml 文件,内容如下:

    
        
            
                %d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n
            
        
    
        
            logs/spring-boot-app.log
            
                %d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n
            
        
    
        
            
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

2. 使用 Log4j2 日志框架

如果你更喜欢使用 Log4j2,可以通过以下步骤进行集成。

步骤:
  1. 引入依赖 在 pom.xml 中添加 Log4j2 的依赖,并排除默认的 Logback:

    
        org.springframework.boot
        spring-boot-starter-log4j2
    
    
    • 1
    • 2
    • 3
    • 4
  2. 配置 Log4j2 在 src/main/resources 目录下创建 log4j2-spring.xml 文件,内容如下:

    
        
            
                
            
            
                
                    %d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n
                
            
        
        
            
                
                
            
            
                
                
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

3. 在代码中使用日志

无论你使用 Logback 还是 Log4j2,Spring Boot 都会为你注入 SLF4J 接口。在你的代码中使用 LoggerFactory 来记录日志:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ExampleController {

    private static final Logger logger = LoggerFactory.getLogger(ExampleController.class);

    @GetMapping("/example")
    public String example() {
        logger.info("This is an info message");
        logger.debug("This is a debug message");
        logger.error("This is an error message");
        return "Logging example!";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

4.使用lombok.extern.slf4j.Slf4j

@Slf4j 是 Lombok 提供的一个注解,用于简化日志记录的过程。它会自动为类注入一个 org.slf4j.Logger 类型的 log 对象,让你无需手动创建 Logger 实例。@Slf4j 基于 SLF4J(Simple Logging Facade for Java),这是一个常用的日志框架接口,可以与多种日志实现(如 Logback、Log4j2 等)结合使用。

1.基本使用

在类上加上 @Slf4j 注解,Lombok 会自动为该类生成一个名为 log 的 Logger 实例。

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class ExampleService {

    public void doSomething() {
        log.info("This is an info message");
        log.debug("This is a debug message");
        log.error("This is an error message");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
2. 日志级别

使用 @Slf4j 注解后,你可以在代码中使用 SLF4J 提供的不同级别的日志方法,例如:

  • log.trace() - 追踪日志,用于非常细节化的日志记录

  • log.debug() - 调试日志

  • log.info() - 信息日志

  • log.warn() - 警告日志

  • log.error() - 错误日志

3. 配合 Spring Boot 和日志配置

在 Spring Boot 项目中,默认使用的是 Logback 日志框架,因此不需要额外配置就可以直接使用 @Slf4j 进行日志记录。

日志级别和格式等配置可以在 application.properties 或 logback-spring.xml 中进行调整。

4. 示例代码
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@Slf4j
@Service
public class UserService {

    public void createUser(String username) {
        log.info("Creating user with name: {}", username);
        try {
            // 模拟一些业务逻辑
            log.debug("Processing user creation logic...");
            // 如果发生错误
            if (username == null) {
                throw new IllegalArgumentException("Username cannot be null");
            }
        } catch (Exception e) {
            log.error("Error creating user: {}", username, e);
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

专栏推荐

大佬们可以收藏以备不时之需:

Spring Boot 专栏:http://t.csdnimg.cn/peKde

ChatGPT 专栏:http://t.csdnimg.cn/cU0na

Java 专栏:http://t.csdnimg.cn/YUz5e

Go 专栏:http://t.csdnimg.cn/Jfryo

Netty 专栏:http://t.csdnimg.cn/0Mp1H

Redis 专栏:http://t.csdnimg.cn/JuTue

Mysql 专栏:http://t.csdnimg.cn/p1zU9

架构之路 专栏:http://t.csdnimg.cn/bXAPS

csdn-end

博主深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新JAVA全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

这套1T的JAVA学习资料是为真正想在技术道路上突围的人准备的,内容覆盖全面:从各大厂的面试题到1000多个专业简历模板,从就业班到进阶课程,再到架构师实战与全栈高薪课程,帮助你从基础到高阶一步步提升!

无论是找工作还是技能进阶,这份VIP资料都是你不可错过的利器!加下方V了解详情,备注:JAVA开发VIP资料。

部分内容:

1

2

3

8

9

10

如果有需求的可以点下方微信了解详情。

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览152857 人正在系统学习中
商业合作/咨询/毕设/订制开发
微信名片
注:本文转载自blog.csdn.net的The-Venus的文章"https://blog.csdn.net/jinxinxin1314/article/details/143065391"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

103
后端
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top