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

【第六篇】 SpringBoot的日志基础操作

        

简介

        日志系统在软件开发中至关重要,用于调试代码、记录运行信息及错误堆栈。本篇文章不仅详细介绍了日志对象的创建及快速使用,还说明了日志持久化的两种配置方式和滚动日志的设置。实际开发需根据场景选择合适的日志级别和存储策略。文章内容若存在错误或需改进的地方,欢迎大家指正!若对操作有任何疑问欢迎留言!非常感谢!

目录

一、日志的作用及基础使用

1、日志的作用

2、日志的基础使用

3、日志级别

(1)直接配置(不常用)

(2)设置根日志级别

二、使用lombok快速添加日志

1、导入lombok的坐标

2、使用@Slf4j注解

三、日志格式解析

四、日志持久化

1、日志持久化两种方式

(1)使用name属性(优先级高)

(2)使用path属性(较name优先级低)

2、滚动日志


一、日志的作用及基础使用

1、日志的作用

  • 编程期调试代码
  • 运行期记录信息
    • 记录日常运行的重要信息(峰值流量、平均响应时长... ...)
    • 记录应用报错信息(错误堆栈)
    • 记录运维过程数据(扩容、宕机、报警... ...)

2、日志的基础使用

        首先在类里面创建一个记录日志的对象,这里使用的是slf4j包下的Logger。然后使用对象直接调用日志方法即可,这里展示了常用的四种级别的日志打印的使用方法。

        运行项目,然后请求一下这个地址,就会发现在控制台上已经有了日志的输出。框架中默认的日志级别是info,所以只会输出info及更高级别的日志。

3、日志级别

  • TRACE:运行堆栈信息,使用率极低
  • DEBUG:开发者调式代码使用
  • INFO:记录运维过程数据(默认,且常用)
  • WARN:记录运维过程警告数据
  • ERROR:记录错误堆栈信息
  • FATAL:灾难信息,合并计入ERROR

        框架中默认的日志级别是INFO,当然可以通过配置等方式来设置日志打印级别。

(1)直接配置(不常用)

        直接在配置文件中设置日志级别为true,然后运行之后可以发现控制台日志的级别发生改变。这是一个全局的调试模式开关,会打印整个应用程序的行为。

(2)设置根日志级别

        仅配置日志系统的根日志级别(Root Logger),不涉及其他调试功能。只影响所有通过该日志系统输出的日志。

二、使用lombok快速添加日志

1、导入lombok的坐标

2、使用@Slf4j注解

        哪里需要打印日志,那么直接在类上声明@Slf4j注解即可,然后使用方法不变,还是log对象。

三、日志格式解析

四、日志持久化

1、日志持久化两种方式

(1)使用name属性(优先级高)

        这种方式可以直接指定路径加文件名,这样的话会在指定路径下生成指定名称的日志文件。

(2)使用path属性(较name优先级低)

        该属性只能指定路径,不能指定名称,会在指定路径下生成一个spring.log的日志文件。

2、滚动日志

        每个系统对单个文件的大小都是有限制的,而且当日志文件过大时非常不宜于查看,最后所有记录日志的时候都是会将日志进行分片的,不会将所有的日志都记录在同一个文件当中。

        下面是根据大小进行分片,注意max-file-size只是一个近似值,并没有那么精确。file-name-pattern用于设置日志的格式,例如下面这种使用日期加序号的形式。

http://www.xdnf.cn/news/12531.html

相关文章:

  • 主流大语言模型安全性测试(三):阿拉伯语越狱提示词下的表现与分析
  • 408第一季 - 数据结构 - 树与二叉树
  • 数 据 结 构 进 阶:哨 兵 位 的 头 结 点 如 何 简 化 链 表 操 作
  • btstack协议栈---Ubuntu驱动CSR8510 USB Dongle
  • 数学:花括号在数学中的应用详解
  • 35 C 语言字符串转数值函数详解:strtof、strtod、strtold(含 errno 处理、ERANGE 错误)
  • Ubuntu挂载本地镜像源(像CentOS 一样挂载本地镜像源)
  • 什么是高考?高考的意义是啥?
  • Ubuntu下有关UDP网络通信的指令
  • Linux 下关于 ioremap 系列接口
  • 虚幻引擎5-Unreal Engine笔记之SET节点的输出引脚获取设置后的最新变量值
  • 【力扣链表篇】19.删除链表的倒数第N个节点
  • ASTRA论文总结
  • PDF转PPT转换方法总结
  • 移除元素-JavaScript【算法学习day.04】
  • 基于Java Swing的办公自动化系统设计与实现:附完整源码与论文
  • Deepseek基座:Deepseek-v2核心内容解析
  • 【C/C++】STL实现版本为什么比手写版本高?
  • Spring Cloud 多机部署与负载均衡实战详解
  • 向 AI Search 迈进,腾讯云 ES 自研 v-pack 向量增强插件揭秘
  • 通俗解释Linux 动态库-fPIC的作用
  • Dynamics 365 Finance + Power Automate 自动化凭证审核
  • 通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
  • Python 自定义函数详解及递归函数等案例
  • 协议哨兵:场景化协议风险的ai工具
  • Tableau for mac 驱动
  • 《探秘局域网广播:网络世界的 “大喇叭”》
  • 前端 Electron 桌面应用学习笔记
  • electron-vite串口通信
  • 队列的概念及实现