【一文秒懂——SLF4j日志】

news2025/1/18 14:41:28

目录

1. SLF4j日志

2. 日志输出


1. SLF4j日志

在添加了spring-boot-starter的项目中,已经包含了SLF4j日志的相关依赖项。

在添加了lombok的项目中,可以在类上添加@Slf4j注解,则lombok框架会在编译期在类中声明名为log的变量,通过此变量可以调用输出日志的方法。

在SLF4j中,日志的可显示级别,根据日志内容从不重要(或可不关注)到重要(或必须关注)依次为:

  • trace:跟踪信息
  • debug:调试信息
  • info:一般信息
  • warn:警告信息
  • error:错误信息

2. 日志输出

通过log变量,可以调用以上5个级别名称对应的方法,以输出对应级别的日志,例如:

@Test
void test() {
    log.trace("输出了一条【trace】日志");
    log.debug("输出了一条【debug】日志");
    log.info("输出了一条【info】日志");
    log.warn("输出了一条【warn】日志");
    log.error("输出了一条【error】日志");
}

 

在Spring Boot项目中,默认的日志显示级别为info,所以,在默认情况下,只会显示info或更加重要的日志!

在Spring Boot项目中,在配置文件中,可以通过在配置文件中的 logging.level.根包名[.类名]=显示级别 来配置显示级别!例如,在application.properties中添加配置:

# 日志的显示级别
logging.level.cn.tedu.csmall=trace

输出日志的各级别的方法都是被重载过的,通常,当输出日志时需要输出相关的变量值时,推荐使用参数列表为 (String msg, Object... args) 的方法,例如:

int x = 1;
int y = 2;
System.out.println("x = " + x + ", y = " + y + ", x + y = " + (x + y));
log.trace("x = {}, y = {}, x + y = {}", x, y, x + y);

以上做法中,是在需要输出的字符串中使用{}作为占位符,表示某个变量的值,然后,从第2个参数开始,依次传入各占位符对应的值。

使用这种做法,可以避免字符串的拼接,无论是编写代码,还是阅读代码,体验都会更好!并且,使用这种做法时,由于第1个参数(字符串)是常量,是不变的,不存在字符串的拼接,所以,执行效率也远高于传统的输出语句!

需要注意,在测试类中,测试类必须添加@SpringBootTest注解,才会识别application.properties中的配置,并且,如果没有添加此注解,日志的默认显示级别是debug

个人主页:居然天上楼

感谢你这么可爱帅气还这么热爱学习~~

人生海海,山山而川

你的点赞👍 收藏⭐ 留言📝 加关注✅

是对我最大的支持与鞭策

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/44437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

农民歌唱家大衣哥喜迎贵客,这三位明星一般人还真请不动

都知道农民歌唱家大衣哥家里热闹,不过大部分都是蹭流量拍视频的,真正的好朋友绝对没有几个。虽然说没有几个好朋友,但是也不代表一个没有,看看在大衣哥家里吃饭的三位,每一个都不是一般人物。 如今的大衣哥&#xff0c…

发现智能合约中的 bug 的 7 个方法

寻找智能合约bug可能是一项高回报的工作,而且它也保护了生态系统免受黑客攻击。我最近有幸采访了一位开发人员,他发现了一个价值 70 亿美元的错误,并因报告该错误而获得了 220 万美元的报酬。 在这篇文章中,我将详细介绍该开发人…

路由和流量控制

路由策略 控制路由,从而影响IP包的转发路径。 路由策略的主要功能有两个,1)过滤路由信息,2)修改路由属性值。 路由匹配工具 acl 只有基本acl(Basic ACL,编号为 2000-2999)可以匹配路由。ACL匹配路由时只能匹配路由的网络号,但无法匹配掩码长度。 [RouterA] acl n…

基于SpringBoot的会员制医疗预约服务管理信息系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#…

使用CSS实现多种Noise噪点效果

在插画中添加噪点肌理可以营造出一种自然的氛围。噪点肌理可以用于塑造阴影、高光、深度以及更多细节,并优化插画质感,应用噪点肌理的方式在扁平插画中广受欢迎。 在前端开发过程中,我们也有可能遇到噪点插画风格的设计稿,应用基…

实验三-----数据库

一、实验目的 1.掌握SQL Server Management Studio中SQL 查询操作; 2.掌握SQL 的单表查询命令; 3.掌握SQL 的连接查询操作; 4.掌握SQL 的嵌套查询操作; 5.掌握SQL 的集合查询操作。 二、实验环境 1.实验室名称&…

Nevron 3DChart创建有吸引力的3D和2D图表

Nevron 3DChart创建有吸引力的3D和2D图表 3DChart使用OpenGL 3D图形引擎创建复杂的2D和3D图表和图形,这些图表和图形可以包含静止或动画图像。3DChart包括用于生成图表模板的独立应用程序和ASP服务器配置实用程序。该组件还包括一个专门设计用于与3DChart集成的工具栏组件。用…

SignalR简介及实践指南

SigalR简介 ASP.NET Core SignalR 是一个开放源代码库,可用于简化向应用添加实时 Web 功能。 实时 Web 功能使服务器端代码能够将内容推送到客户端。 适合 SignalR 的候选项: 需要从服务器进行高频率更新的应用。 示例包括游戏、社交网络、投票、拍卖…

【LeetCode】No.102. Binary Tree Level Order Traversal -- Java Version

题目链接:https://leetcode.com/problems/binary-tree-level-order-traversal/ 1. 题目介绍(Binary Tree Level Order Traversal) Given the root of a binary tree, return the level order traversal of its nodes’ values. (i.e., from …

React Redux 中触发异步副作用

React Redux 中触发异步副作用 一些基本的配置(这里使用 toolkit)可以在这篇笔记中找到:react-redux 使用小结,这里不多赘述。 触发副作用主流的操作方式有两种: 组件内操作 适合只会在当前组件中触发的 API 操作 写…

企业数仓DQC数据质量管理实践篇

一.数据质量管理背景 以大数据平台的核心理念是构建于业务之上,用数据为业务创造价值。大数据平台、数据仓库的搭建之初,优先满足业务的使用需求,数据质量往往是被忽视的一环。但随着业务的逐渐稳定,数据质量越来越被人们所重视。…

2.1.3 运算放大器的参数以及选型、静态、交流技术指标

笔者电子信息专业硕士毕业,获得过多次电子设计大赛、大学生智能车、数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究。对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验&a…

基于小脑模型神经网络轨迹跟踪matlab程序

1 CMAC概述 小脑模型神经网络(Cerebellar Model Articulation Controller,CMAC)是一种表达复杂非线性函数的表格查询型自适应神经网络,该网络可通过学习算法改变表格的内容,具有信息分类 存储的能力。 CMAC把系统的输入状态作为一个指针,把相…

Oracle-Autoupgrade方式升级19c

前言: Autoupgrade是Oracle 推出的自动升级工具,通过该工具可以将数据库升级为Oracle12.2之后的版本,工具支持升级前的检查、升级问题修复、一键式自动升级以及升级后的问题修复,极大的简化数据库的升级步骤。 支持的目标升级版本: Oracle D…

用 Java 实现爬虫 (爬取本地html中的人物信息并可视化人物关系)

目录 爬虫简介 常用的工具框架 selenium Jsoup Jsoup介绍 Jsoup的主要功能如下: HTML 相关知识 通过Jsoup元素获取 案例 爬取本地html中的角色信息 HtmlParseUtil 可以利用relation-graph 将人物关系可视化 使用爬虫要注意 查看网站的爬虫协议 爬虫简介…

面试:ANR原因及排查

ANR原因 1、CPU满负荷,I/O阻塞 2、内存不足,系统分配给一个应用的内存是有上限的,长期处于内存紧张,会导致频繁内存交换,进而导致应用的一些操作超时。自己内存泄漏或者其他应用占用的大量内存 3、四大组件ANR 4、…

字符串压缩(一)之ZSTD

一、zstd压缩与解压 ZSTD_compress属于ZSTD的Simple API范畴,只有压缩级别可以设置。 ZSTD_compress函数原型如下: size_t ZSTD_compress(void* dst, size_t dstCapacity, const void* src, size_t srcSize, int compressionLevel) ZSTD_decompress函数原…

Mysql replace into

CREATE TABLE t (id int(11) NOT NULL AUTO_INCREMENT,age int(11) DEFAULT NULL,msg varchar(10) DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY uniq_age (age) ) ENGINEInnoDB DEFAULT CHARSETutf8;insert into t (age, msg) values (1,aaa),(2,bbb),(3,ccc);id 为自增主键、ag…

「重学JS」你真的懂数据类型吗?

前言 学习了这么久前端,发现自己对于基础知识的掌握并没有那么通透,于是打算重新学一遍JS,引用经济学的一句话:JS基础决定能力高度🤦🏻 基础很重要,只有基础好才会很少出 bug,大多数…

aws cloudformation 理解常见资源的部署和使用

参考 cfn101-workshopaws cli cloudformation cloudformation是aws的iac工具,以下简称cfn 环境搭建——cfn命令行工具 创建堆栈 aws cloudformation create-stack --stack-name testtemp \--template-body file://testtemp.yaml# --parameters ParameterKeyKey…