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

【Spring】日志级别的分类和使用

文章目录

  • 介绍
  • 日志级别的分类
    • 日志级别的顺序
  • 日志级别的使用

介绍

日志级别代表着日志信息对应问题的严重性,为了更快的筛选符合目标的日志信息

试想一下这样的场景,假设你是一家 2 万人公司的老板,如果每个员工的日常工作和琐碎的信息都要反馈给你,那你一定无暇顾及。于是就有了组织架构,而组织架构就会分级,有很多的级别设置,如下图image.png

有了组织架构之后,就可以逐级别汇报消息了,例如:组员汇报给组长,组长汇报给研发一组,研发一组汇报给 Java 研发,等等依次进行汇报

日志级别大概是同样的道理,有了日志级别之后就可以过滤自己看到的信息了,比如只关注 Error 级别的,就可以根据级别过滤出相关日志信息,节约开发者的信息筛选时间

日志级别的分类

日志级别从到到底依次为:FATALERRORWARNINFODEBUGTRACE

  • FATAL致命信息,表示需要立即被处理的系统级错误
  • ERROR错误信息,级别较高的错误日志信息,但仍不影响系统的继续运行
  • WARN警告信息,不影响使用,但需要注意的问题
  • INFO普通信息,用于记录应用程序正常运行时的一些信息,例如系统启动完成,请求处理完成等
  • DEBUG调试信息,需要调试时候的关键嘻嘻打印
  • TRACE追踪信息,比 DEBUG 更细粒度的信息事件(除非有特殊用意,否则请用 DEBUG 级别替代)

日志级别通常和测试人员的 bug 级别没有关系

  • 日志级别是开发人员设置的,用来给开发人员看的。
  • 日志级别的正确设置,也与开发人员的工作经验有关。如果开发人员把 error 级别的日志设置成了 INFO,就很有可能会影响开发人员对项目运行情况的判断
  • 出现 error 级别的日志信息较多时,可能也没有任何问题。测试的 bug 级别更多是依据现象和影响范围来判断

日志级别的顺序

image.png

  • 级别越高,收到的消息越少

日志级别的使用

日志级别是开发人员自己设置的。开发人员根据自己的理解来判断该信息的重要程度

  • 类似公司管理,通常由领导来判断什么样的事情需要汇报,什么样的事情不需要汇报

针对这些级别,Logger 对象分别提供了对应的方法,来输出日志

@RequestMapping("/printLog")  
public String printLog(){  logger.trace("========trace========");  logger.debug("========debug========");  logger.info("========info========");  logger.warn("========warn========");  logger.error("========error========");  return "打印不同级别的日志";  
}

SpringBoot 默认的日志框架是 LogbackLogback 没有 FATAL 级别,它被映射到 ERROR

  • 出现 FATAL 日志,表示服务已经出现了某种程度的不可用,需要联系系统管理员紧急介入处理
  • 通常情况下,一个进程声明周期中应该最多只有依次 FATAL 记录

观察打印的结果:image.png

  • 结果发现,只打印了 infowarnerror 级别的日志
  • 这与日志级别的配置有关,日志的输出级别默认是 info 级别,所以只会打印大于等于此级别的日志,也就是 infowarnerror
http://www.dtcms.com/a/305114.html

相关文章:

  • 计算机视觉-局部图像描述子
  • 代理IP轮换机制:突破反爬虫的关键策略
  • AI驱动的知识管理新时代:释放组织潜力的关键武器
  • win10 环境删除文件提示文件被使用无法删除怎么办?
  • MPLS 专线网络
  • 字符集学习
  • 实现多路标注截图
  • GESP2025年6月认证C++七级( 第三部分编程题(1)线图)
  • Spring Boot中的this::语法糖详解
  • Spring与数学的完美碰撞
  • 偏二甲肼气体浓度报警控制系统
  • 自适应双门限的能量检测算法
  • Python算法实战:从排序到B+树全解析
  • TDengine:用AI改变数据消费范式
  • linux命令ps的实际应用
  • 学习Python中Selenium模块的基本用法(3:下载浏览器驱动续)
  • 微服务快速入门
  • BehaviorTree.Ros2 编译教程
  • JavaWeb 入门:JavaScript 基础与实战详解(Java 开发者视角)
  • 飞算科技:以原创之力,开启Java开发新纪元与行业数智变革
  • 技术QA | GNSS模拟器如何赋能自动驾驶?聚焦HIL、多实例与精准轨迹仿真的技术优势
  • Ignite(Apache Ignite)中计算与数据共置的核心概念和编程实践
  • 小程序视频播放,与父视图一致等样式设置
  • Electron将视频文件单独打包成asar并调用
  • 如何在Linux系统下进行C语言程序的编写和debug测试
  • 解锁全球数据:Bright Data MCP 智能解决代理访问难题
  • 三极管、MOS 管、CMOS 管的特点、属性及综合对比
  • DAY27 函数专题2:装饰器
  • 【算法训练营Day18】二叉树part8
  • BOSMA博冠推出8K广播级讯道摄像机DC0300 EFP