Spring Boot 日志实战:级别、持久化与 SLF4J 配置全指南

Spring Boot 日志实战:级别、持久化与 SLF4J 配置全指南

个人主页♡喜欢做梦

欢迎  👍点赞  ➕关注  ❤️收藏  💬评论


目录

🍉日志的定义

🍉日志的使用

🍉日志的级别分类

🍑日志级别的使用

🍑日志级别的配置

🍉日志持久化

🍑什么是日志持久化?

🍑日志持久化的配置

🍉配置日志文件的文件

🍉更简单的日志输出

🍑添加依赖

🍑@Slf4j


🍉日志的定义

日志本质上是系统、软件或设备按时间顺序记录操作、事件或状态的文件文本,用于最终历史、排查问题和审计。

Spring Boot项目在启动时就有默认的日志输出:

核心作用

  • 问题排查:当软件崩溃、系统出错、时,日志会记录错误代码、发生时间和上下文,帮助技术人员定位原因。
  • 行为审计:记录用户的关键操作,比如谁登录了系统、谁修改了文件,用于追溯责任或合规检查。
  • 状态监控:实是记录系统资源使用情况,如CPU占用率、内存使用量、帮助发现性能瓶颈。

🍉日志的使用

import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LoggerController { private final static Logger logger= LoggerFactory.getLogger(LoggerController.class); } 

🍉日志的级别分类

日志的级别从高到低依次为:FATAL、ERROR、WARN、INFO、DEBUG、TRACE

  • FATAL:致命信息,表示需要立即被处理的系统级错误。
  • ERROR:错误信息,级别较高的错误日志信息,但不影响系统的继续运行。
  • WARN:警告信息,不影响使用,但需要注意。
  • INFO:普通信息,用于记录应用程序正常运行时的一些信息。
  • DRBUG:调试信息,需要调试时候的关键信息打印。
  • TRACE:追踪信息,比DEBUG更细粒的信息事件

🍑日志级别的使用

Spring Boot默认的日志框架是Logback,Logback没有FATAL级别,他被映射到ERROR。

@RestController @RequestMapping("/logger") public class LoggerController { private final static Logger logger= LoggerFactory.getLogger(LoggerController.class); @RequestMapping("/printlog") public String logger(){ logger.error("error...."); logger.warn("warn...."); logger.info("info..."); logger.debug("debug..."); logger.trace("trace..."); return "打印日志级别"; } }

打印结果:

这里的打印结果,只打印了error,warn,info是因为,这与日志级别的配置有关,日志的输出级别默认是info,所以只会打印大于等于info的级别,也就是info,warn,error。

🍑日志级别的配置

yml配置

logging: level: root: debug

properties

logging.level.root=debug

🍉日志持久化

🍑什么是日志持久化?

日志持久化是指将程序运行过程中产生的日志数据,从内存写入到磁盘等持久化存储介质的过程,核心目的是防止日志因系统崩溃、断电等意外丢失。

🍑日志持久化的配置

yml

logging: file: name: logger/l og.log

properities

logging.file.name=logger/log.log
  • 后面可可以跟绝对路径也可以是相对路径;

运行结果如下,日志保存在了对应的目录内容

🍉配置日志文件的文件

yml

 logback: rollingpolicy: max-file-size: 1KB file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i

properities

logging.logback.rollingpolicy.file-name-pattern=${LOG_FILE}.%d{yyyy-MM-dd}.%i logging.logback.rollingpolicy.max-file-size=1KB

🍉更简单的日志输出

🍑添加依赖

 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>

🍑@Slf4j

使用

@Slf4j public class LoggerController2 { public String logger(){ log.info("info...."); return "打印日志"; } }

我们使用@Slf4j就不用写那一长句就可以直接调用日志,但是要使用log调用。

Read more

Python(28)Python循环语句指南:从语法糖到CPython字节码的底层探秘

Python(28)Python循环语句指南:从语法糖到CPython字节码的底层探秘

目录 * 引言 * 一、推导式家族全解析 * 1.1 基础语法对比 * 1.2 性能对比测试 * 二、CPython实现揭秘 * 2.1 字节码层面的秘密 * 2.2 临时变量机制 * 三、高级特性实现 * 3.1 嵌套推导式优化 * 3.2 条件表达式处理 * 四、性能优化指南 * 4.1 内存使用对比 * 4.2 执行时间优化技巧 * 五、最佳实践建议 * 六、总结 * 🌈Python爬虫相关文章(推荐) 引言 在Python编程中,循环语句是控制流程的核心工具。传统for循环虽然直观,但在处理大数据时往往面临性能瓶颈。本文将深入解析Python推导式(列表/字典/集合推导式)的底层实现机制,

By Ne0inhk
Python快速落地的临床知识问答与检索项目(2025年9月教学配置部分)

Python快速落地的临床知识问答与检索项目(2025年9月教学配置部分)

项目概述与技术选型 本项目定位为临床辅助决策支持工具,而非替代临床诊断的独立系统,旨在解决医疗行业两大核心痛点:一是医学知识更新速率加快,2025 年临床指南年均更新量较 2020 年增长 47%,传统知识管理方式难以同步;二是科室规范呈现碎片化分布,不同院区、亚专科的诊疗流程存在差异,导致知识检索效率低下。技术路线采用 RAG 知识库 + ChatFlow 多轮对话 + 工具节点对接 的三层架构,通过整合指南文献、临床路径和院内 SOP 文档,满足门诊快速问诊、病房随访问答及科室知识库精准检索需求,最终实现医疗信息可及性提升 30%、基层医生决策效率提高 25% 的核心价值目标[1]。 技术栈选型分析 1. 大语言模型:领域专精与多模态融合 临床知识问答核心模型需兼顾专业性与部署灵活性。2025 年主流选型包括: * Chimed - GPT:基于 Ziya - V2 架构,通过预训练、

By Ne0inhk

【2025最新】Python量化数据接口指南:baostock 免费获取分钟级K线教程

baostock 是一个对Python量化爱好者非常友好的免费开源证券数据平台,尤其适合获取A股历史行情数据。我为你准备了这份2025年更新的baostock使用指南,希望能帮助你高效地获取数据。 1. 认识baostock Baostock(证券宝)是一个免费、开源的证券数据平台。它通过Python API提供大量准确、完整的证券历史行情数据、上市公司财务数据等,能满足量化交易投资者、数量金融爱好者、计量经济从业者的数据需求。 它的数据返回格式为pandas DataFrame类型,这对于使用pandas/NumPy/Matplotlib进行数据分析和可视化非常友好。 2. 数据范围与时间 baostock的数据覆盖范围主要包括: 数据类型 包含内容 时间范围 备注                 股票数据 日、周、月K线数据 1990-12-19至今 5、15、30、60分钟K线数据 1999-07-26至今 指数数据 综合指数,规模指数,一级行业指数,二级行业指数,策略指数,成长指数,价值指数,主题指数,基金指数,

By Ne0inhk
Linux C/C++ 学习日记(61):Redis(二):多种数据结构的操作指令

Linux C/C++ 学习日记(61):Redis(二):多种数据结构的操作指令

注:该文用于个人学习记录和知识交流,如有不足,欢迎指点。 一、redis是kv数据库 key:string value:5 大基础核心结构String(字符串)Hash(哈希)List(列表)Set(集合)Sorted Set/ZSet(有序集合)。 【 另外还有 位图(Bitmap)、地理空间(Geo) 等常用扩展结构(基于基础结构实现)】 二、string 1. 结构说明 Redis 最基础、最常用的数据结构,值可以是字符串、数字(整数 / 浮点数)、二进制数据(如图片、序列化对象),单个 String 最大支持 512MB。 特点: 字符数组,该字符串是动态字符串

By Ne0inhk