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

SpringBoot (二) 日志系统

目录

一 基础概念

1 基础版

2 改进版

二 日志级别

常见日志级别(从低到高详细度/从高到低严重性)

三 基础使用

1 级别调节

2 日志的文件输出

3 文件归档与滚动切割

4 也可以自动创建一个配置文件

5 切换日志框架


一 基础概念

日志框架对比总结

框架类型代表优势劣势
日志门面SLF4J高灵活性,参数化日志支持需绑定具体实现
日志实现Logback高性能,原生支持SLF4J功能扩展性弱于Log4j2
日志实现Log4j2异步日志、无垃圾模式,性能最优配置复杂度较高
  1. SLF4J + Logback

    • Spring Boot默认组合,性能优异且配置灵活。

  2. SLF4J + Log4j2

    • 高性能场景的首选,支持异步日志和复杂过滤策略。

日志:日志是系统和应用程序在运行过程中记录的关键信息,涵盖事件、状态变更、错误、用户操作等内容。

1 基础版

package org.example.springmvc;

import org.junit.jupiter.api.Test;
import org.junit.platform.commons.logging.Logger;
import org.junit.platform.commons.logging.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class LogTest {

    @Test
    public void testLog() {
        //格式 时间 日志级别  日志信息
        // 获取一个日志记录器
        Logger logger = LoggerFactory.getLogger(LogTest.class);
        //开始记录日志
        logger.trace(() -> "追踪日志...");
        logger.debug(() -> "调试日志...");
        logger.info(() -> "信息日志...");
        logger.warn(() -> "警告日志...");
        logger.error(() -> "错误日志...");
    }
}

2 改进版

package org.example.springmvc;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@Slf4j
@SpringBootTest
public class LogTest {

    @Test
    public void testLog() {
        //开始记录日志
        log.trace("追踪日志...");
        log.debug("调试日志...");
        log.info("信息日志...");
        log.warn("警告日志...");
        log.error("错误日志...");
    }
}

二 日志级别

常见级别:all - trace - debug - info - warn -  error -fatal - off

级别越来越高,信息越来越粗糙。日志有一个默认级别(INFO),只会打印这个级别之上的所有。

常见日志级别(从低到高详细度/从高到低严重性)

级别典型使用场景示例日志内容
TRACE最详细的调试信息,用于追踪程序每一步执行(如循环内部状态、低层逻辑)。通常仅在开发阶段启用。进入方法 calculatePrice,参数: itemId=1001, quantity=2
DEBUG详细的运行时信息,用于调试问题(如变量值、分支逻辑)。开发环境常用,生产环境按需临时开启。用户ID 12345 的购物车中有 3 件商品,总金额 $299.99
INFO常规的系统运行状态,记录关键业务流程节点(如服务启动、配置加载、用户操作)。生产环境默认级别。订单 67890 支付成功,金额 $150.00
WARN潜在问题警告,不影响系统继续运行但需关注(如低内存、重试操作、降级策略触发)。数据库连接池使用率超过80%,当前连接数: 48/50
ERROR运行时错误,导致当前操作失败但系统仍可运行(如外部API调用失败、文件未找到、业务逻辑异常)。支付网关请求失败: 连接超时 (订单ID: 67890)
FATAL致命错误,导致系统崩溃或无法恢复(如内存溢出、关键资源不可用)。需立即人工干预。JVM 内存溢出: java.lang.OutOfMemoryError

三 基础使用

1 级别调节

调级别:(所有)

logging.level.root=debug

调级别:(指定)

logging.level.org.example.springmvc=debug

日志分组调级别:(指定组别)

logging.group.biz=org.example.springmvc.dao,org.example.springmvc.service
logging.level.biz=debug

2 日志的文件输出

指定文件名在当前项目下生成(指定的是名称)

logging.file.name=boot.log

指定路径在路径下创建(指定的是路径,名称会有默认名称:spring.log)

logging.file.path=D://myLog

两个都指定:以文件名为准

3 文件归档与滚动切割

  • 归档:每天的日志单独到一个文档中。
  • 切割:每个文件10MB,超过小切割成另外一个文件。

0B 不限制大小

4 也可以自动创建一个配置文件

如果你想快速修改日志的配置,就在SpringBoot的配置文件中修改,如果你有原生日志的全量配置,直接使用原生框架的这些配置。

5 切换日志框架

相关文章:

  • Python+拉普拉斯变换求解微分方程
  • 如何使用stable diffusion 3获得最佳效果
  • Zynq + FreeRTOS 笔试题1
  • STC89C52单片机学习——第37节: [17-1] 红外遥控(外部中断)
  • 详解list容器
  • socket演示程序2
  • xshell可以ssh连接,但vscode不行
  • 多路IO复用-----epoll和poll和select的区别
  • Windows系统本地部署DeepSeek详细教程
  • Ubuntu修改用户名
  • 朴素贝叶斯
  • AI人工智能-Python基础与程序流程控制
  • python正向先行断言讲解与举例
  • Javascript中的匿名函数
  • 基于单片机的农田智能驱鼠装置(论文+源码)
  • 第十七章:Python数据可视化工工具-Pyecharts库
  • Qt中的事件循环
  • “Error: Flash Download failed - Target DLL has been cancelled”
  • todesk控制端没声音 控制声音位置
  • 吴恩达深度学习复盘(2)神经网络的基本原理轮廓
  • wordpress 小说/本地网络seo公司
  • 房产网站编辑如何做/市场调研方案范文
  • 免费域名申请地址/优化网站排名茂名厂商
  • 西餐厅网站模板/发稿
  • 网站建动态密码是否收费/seo五大经验分享
  • 如何做文档附网站/免费产品推广网站