当前位置: 首页 > article >正文

SLF4J日志快速上手


tags: SpringBoot 日志 快速上手

SLF4J日志快速上手

第一步:添加日志相关配置

logging:
        level:
                root: INFO # 设置全局日志级别为 INFO,只显示重要的日志信息(略过 DEBUG 和 TRACE 级别)
                # org.hibernate.SQL: DEBUG # 对于 Hibernate SQL 查询,使用 DEBUG 级别 (如果你用的是别的数据库操作,就别写这一行了)

第二步:项目启动时,输出一些信息

  1. 在SpringBoot项目里添加StartupLogger
  2. 添加一个方法,并使用@PostConstruct注解
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;

@Component
public class StartupLogger {

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

    @PostConstruct
    public void logOnStartup() {
        logger.info("""
                
                Spring Boot application has started!
                
                """);
    }
}

项目启动之后,会在控制台看到类似的信息:

2024-11-22 10:34:09.544  INFO 14248 --- [           main] c.u.b.core.learning.StartupLogger        : 
Spring Boot application has started!

第三步:接口被调用时,输出一些信息

  1. 创建LoggingController类,编写可供调用的接口。接着在拦截器里调整对这个接口的限制。
  2. 使用logger输出不同类型的日志。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class LoggingController {

    // 使用 SLF4J Logger 来进行日志记录
    private static final Logger logger = LoggerFactory.getLogger(LoggingController.class);

    // 定义一个 GET 请求的端点
    @GetMapping("/logExample")
    public String logExample() {
        // 输出信息日志
        logger.info("logExample endpoint has been called");

        // 输出调试日志:可以帮助开发者在调试阶段追踪程序执行
        logger.debug("Debugging log for logExample endpoint");

        // 输出警告日志:记录可能对系统稳定性造成影响的情况
        logger.warn("This is a warning message");

        // 输出错误日志:当系统发生异常或错误时,记录详细信息
        logger.error("This is an error message");

        // 返回响应信息
        return "Logging example complete!";
    }
}

http://localhost:8080/test/logExample 接口被调用时,后台输出如下内容:

2024-11-22 10:50:01.304  INFO 9500 --- [nio-8080-exec-2] c.u.b.core.learning.LoggingController    : logExample endpoint has been called
2024-11-22 10:50:01.304  WARN 9500 --- [nio-8080-exec-2] c.u.b.core.learning.LoggingController    : This is a warning message
2024-11-22 10:50:01.304 ERROR 9500 --- [nio-8080-exec-2] c.u.b.core.learning.LoggingController    : This is an error message

注意,logger.debug(**)并未输出信息,这是因为我们在配置中设置日志级别为INFO

其他内容

参数化日志、异常堆栈跟踪、自定义日志格式、性能调优:延迟日志记录、日志文件输出、多种日志级别的使用(TRACE, DEBUG, INFO, WARN, ERROR)、异常记录和自定义异常格式、日志分级(如:按包名分配日志级别)、使用日志占位符、日志轮换(日志文件切割)、多线程日志输出、日志聚合(集中式日志管理,如ELK堆栈)、外部日志框架(如Logback、Log4j2)配置、结合AOP进行方法级日志记录、环境变量与日志相关配置、记录访问日志与请求响应时间


http://www.kler.cn/a/411220.html

相关文章:

  • AI智能体崛起:从“工具”到“助手”的进化之路
  • NeurIPS 2024 有效投稿达 15,671 篇,数据集版块内容丰富
  • HttpServletRequest req和前端的关系,req.getParameter详细解释,req.getParameter和前端的关系
  • 什么是 WPF 中的依赖属性?有什么作用?
  • 深度学习day4-模型
  • 远程控制软件:探究云计算和人工智能的融合
  • TCP/IP协议攻击与防范
  • C# Winform贪吃蛇小游戏源码
  • VOLO实战:使用VOLO实现图像分类任务(二)
  • 网站布局编辑器前端开发:设计要点与关键考量
  • 数据结构 (12)串的存储实现
  • ASP.NET Web(.Net Framework) Http服务器搭建以及IIS站点发布
  • [Redis#6] list | 命令 | 应用 | 消息队列 | 微博 Timeline
  • CBK1安全与风险管理
  • 重学SpringBoot3-异步编程完全指南
  • shell编程第四天(day036)
  • sql server 获取当前日期的时间戳
  • Leetcode105从前序与中序遍历序列构造二叉树
  • tableau-制作30个图表
  • 和数集团业务说明会(南京站)顺利举办
  • Flink Sink的使用
  • 【贪心算法第四弹——376.摆动序列】
  • VisionPro 机器视觉案例 之 凹点检测
  • JAVA面向对象核心部分
  • C++设计模式之组合模式实践原则
  • 在 Mac(ARM 架构)上安装 JDK 8 环境