后端只打印了info等级的日志?-SpringBoot日志打印-Slf4j

news2024/12/23 3:57:23

在调用log变量的方法来输出日志时,有以上5个级别对应的方法,从不太重要,到非常重要
调用不同的方法,就会输出不同级别的日志。

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

问题:SpringBoot只打印了info等级的日志?

在这里插入图片描述

原因:使用了Spring Boot(例如在测试类上添加了@SpringBootTest注解),日志的默认显示级别是info,则只会显示infowarnerror级别的日志,不会显示tracedebug级别的日志。

解决方法

1.首先我们确认使用了工具打印日志
在pom.xml中添加依赖

        <!-- Lombok的依赖项,主要用于简化POJO类的编写 -->
        <!-- 添加了Lombok后,在任何类的声明之前,添加@Slf4j注解,则编译期会自动声明一个名为log的变量,所以,可以在类中通过此变量来输出日志。 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>

使用前,在任何类的声明之前,添加@Slf4j注解,如下则编译期会自动声明一个名为log的变量

@Slf4j
@SpringBootTest
class SmallApplicationTests {
    @Test
    void logTest(){
        int x = 1;
        int y = 2;
        System.out.println("x = " + x + ", y = " + y + ", x + y = " + (x + y)); // 传统做法
        log.trace("111x = {}, y = {}, x + y = {}", x , y , x + y); // 使用日志输出变量的做法
        log.debug("222x = {}, y = {}, x + y = {}", x , y , x + y); // 使用日志输出变量的做法
        log.info("333x = {}, y = {}, x + y = {}", x , y , x + y); // 使用日志输出变量的做法
        log.warn("444x = {}, y = {}, x + y = {}", x , y , x + y); // 使用日志输出变量的做法
        log.error("555x = {}, y = {}, x + y = {}", x , y , x + y); // 使用日志输出变量的做法
    }
}

2.配置展示日志等级
在Spring Boot项目中,可以在配置文件(application.properties / application.yml / 相关Profile配置)中配置logging.level.包名属性,以指定某个包下的所有类的默认日志显示级别,此属性的值为5个级别中的某1个。

例如,在application.yml添加配置:

#加载Spring Boot的情况下,日志的默认显示级别是info,只会显示此级别及更加重要的级别的日志info.warn,error
#为了所有日志都现在,包括trace(跟踪日志),debug (调试日志)
#实际尝试有效
logging:
  level:
    com.luoyang.small: trace

在这里插入图片描述

或者在application.properties中添加配置

#实际尝试有效
logging.level.com.luoyang.small=TRACE

结果:
在这里插入图片描述

附加信息

提示: Mybatis框架会生成各Mapper接口的对象,这些对象在执行SQL语句时,也会输出日志。如果想看的traceinfo级别的日志,也需要把日志的显示级别设置为较低的trace级别

日志占位符: 在调用日志的方法时,如果输出的信息中包含变量值,可以使用{}作为占位符,表示此处是一个变量值,然后,通过Object... args依次传入各占位符对应的值,如下:

    @Test
    void logTest(){
        int x = 1;
        int y = 2;
        System.out.println("x = " + x + ", y = " + y + ", x + y = " + (x + y)); // 传统做法
        log.trace("111x = {}, y = {}, x + y = {}", x , y , x + y); // 使用日志输出变量的做法
    }

以上使用日志输出时,不会涉及到字符串的拼接,所以,执行效率会更高。并且,以上方法的第1个参数是字符串常量,是在内存中的字符串常量池中的,也可以一定程度上提高执行效率。

创造价值,乐哉分享!

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

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

相关文章

浏览器的一些思考(12.13)

1.在没有浏览器之前是什么样子的&#xff1f; 在没有浏览器之前&#xff0c;人们访问互联网主要通过终端机或图文电视系统。 终端机是一种没有显示器、键盘和鼠标的计算机&#xff0c;只能通过终端模拟器来显示和操作。终端模拟器可以模拟终端机的功能&#xff0c;让用户能够…

只有27亿参数,性能却高25倍!微软发布Phi-2

12月13日&#xff0c;微软在官方网站正式发布了&#xff0c;27亿参数的大语言模型—Phi-2。 Phi-2是基于微软的Phi-1.5开发而成&#xff0c;可自动生成文本/代码、总结文本、数学推理等功能。 虽然Phi-2的参数很小&#xff0c;性能却优于130亿参数的Llama-2和70亿参数的Mistr…

大型软件编程实际应用实例:个体诊所电子处方系统,使用配方模板功能输入症状就可开出处方软件操作教程

一、前言&#xff1a; 在开电子处方的时候&#xff0c;如果能够输入症状就可以一键导入配方&#xff0c;则在很大程度上可以节省很多时间。而且这个配方可以根据自己的经验自己设置&#xff0c;下面以 佳易王诊所电子处方软件为例说明。 二、具体一键导入配方详细操作教程 点击…

YOLOv8独家原创改进:SPPF自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

💡💡💡本文原创自研创新改进:SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响 强烈推荐,适合直接使用,paper创新级别 💡💡💡 在多个数据集验证涨点,尤其对存在多个尺…

20分钟部署ChatGLM3-6B

准备工作 1.下载源代码&#xff1a; https://github.com/THUDM/ChatGLM3 2.下载预训练模型&#xff1a; https://modelscope.cn/models/ZhipuAI/chatglm3-6b/files 可以创建一个py文件&#xff0c;直接使用如下代码下载到本地&#xff1a; from modelscope.hub.snapshot_dow…

Esxi中的AlmaLinux硬盘扩容

Esxi中的AlmaLinux硬盘扩容 通过本文能学习到 虚拟机中的AlmaLinux硬盘扩容 本文主要包括3部分内容&#xff1a; 1. 需要进行扩容的原因 2. 写这篇文章的目的 3. 扩容实操需要进行扩容的原因 近日&#xff0c;使用Jenkins部署时&#xff0c;出现镜像向Nexus私服推送镜像时…

三、CM4树莓派文件传输及终端常用命令

一、文件传输 方法1&#xff1a;使用U盘 方法2&#xff1a;VNC文件传输 电脑文件传输到树莓派 树莓派文件传输到电脑 二、终端常用命令 sudo&#xff1a;以超级用户的身份来执行命令 sudo su #切换为超级用户身份 su pi #切换回普通用户pi 目录切换命令pwd#显示当前所在目…

【Linux系统编程二十一】:(进程通信3)--消息队列/信号量(system v标准的内核数据结构的设计模式)

【Linux系统编程二十】&#xff1a;消息队列/信号量(system v标准的内核数据结构的设计模式&#xff09; 一.消息队列二.system v标准的内核数据结构的设计三.四个概念(互斥/临界)四.信号量1.多线程并发访问2.计数器3.原子的4.总结 一.消息队列 一个叫做a进程啊&#xff0c;一个…

【解刊】CCF-C类,1区SCI,1个月21天录用!影响因子持续走高,对国人友好!

计算机类 • 好刊解读 今天小编带来Elsevier旗下计算机领域好刊&#xff0c;如您有投稿需求&#xff0c;可作为重点关注&#xff01;后文有相关领域真实发表案例&#xff0c;供您投稿参考~ 01 期刊简介 Computer Communications ✅出版社&#xff1a;Elsevier ✅ISSN&#…

【自定义Source、Sink】Flink自定义Source、Sink对ClickHouse进行读和批量写操作

ClickHouse官网文档 Flink 读取 ClickHouse 数据两种驱动 ClickHouse 官方提供Clickhouse JDBC.【建议使用】第3方提供的Clickhouse JDBC. ru.yandex.clickhouse.ClickHouseDriver ru.yandex.clickhouse.ClickHouseDriver.现在是没有维护 ClickHouse 官方提供Clickhouse JDBC…

谈谈常用的分布式ID的设计方案?

典型回答 首先&#xff0c;我们需要明确通常的分布式ID定义&#xff0c;基本的要求包括&#xff1a; 全局唯一&#xff0c;区别于单点系统的唯一&#xff0c;全局是要求分布式系统内唯一。 有序性&#xff0c;通常都需要保证生成的ID是有序递增的。例如&#xff0c;在数据库存…

控制笔记本电脑性能,增强性能/控制发热---Thinkpad x280

1、引言 手上有一台收来办公的Thinkpad x280,但安装的联想管家却没有性能调节选项&#xff0c;导致电脑性能释放很不顺手。由于有室外办公需求&#xff0c;也就有续航需求&#xff0c;也是让它减少发热&#xff1b;同时我想在室内的时候&#xff0c;完整发挥它的性能&#xff…

Oracle md5

SQL CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2) RETURN VARCHAR2 ISretval varchar2(32); BEGINretval : utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING > passwd));RETURN retval; END; 测试 select md5(lw112190) from dual 效果

SAP ABAP excel文件模板上传下载

一&#xff1a;事物码smw0 二&#xff1a;上传步骤 程序源码&#xff1a; l_filename XX.xls.l_muban z123. *&---下载模板PERFORM frm_get_fullpath CHANGING gv_fullpath gv_path gv_name. *&---路径为空则退出IF gv_fullpath IS INITIAL.MESSAGE 用户取消操作 T…

【STM32F103】ADC 模拟数字转换器

ADC ADC&#xff08;Analog-to-Digital Converter&#xff09;&#xff0c;模拟-数字转换器&#xff0c;也叫模数转换器&#xff0c;可以将连续变化的模拟信号转换为离散的数字信号。 我们可以外接上将采集信号转为模拟信号的模块&#xff0c;如光敏电阻传感器&#xff0c;热…

光学遥感显著目标检测初探笔记总结

目录 观看地址介绍什么是显著性目标检测根据不同的输入会有不同的变体(显著性目标检测家族)目前这个领域的挑战 技术方案论文1(2019)论文2(2021)论文3(2022) 未来展望 观看地址 b站链接 介绍 什么是显著性目标检测 一张图片里最吸引注意力的部分就是显著性物体&#xff0c;…

【大数据-Hadoop】从入门到源码编译-概念篇

【大数据-Hadoop】从入门到源码编译-概念篇 Hadoop与大数据生态&#xff08;一&#xff09;Hadoop是什么&#xff1f;&#xff08;二&#xff09;Hadoop组成1. HDFS1.1 NameNode&#xff08;nn&#xff09;1.2 DataNode&#xff08;dn&#xff09;1.3 Secondary NameNode&#…

公众号怎么提高2个限制

一般可以申请多少个公众号&#xff1f;许多用户在申请公众号时可能会遇到“公众号显示主体已达上限”的问题。这是因为在2018年11月16日对公众号申请数量进行了调整&#xff0c;具体调整如下&#xff1a;1、个人主体申请公众号数量上限从2个调整为1个。2、企业主体申请公众号数…

Docker - Android源码编译与烧写

创建源代码 并挂载到win目录 docker run -v /mnt/f/android8.0:/data/android8.0 -it --name android8.0 49a981f2b85f /bin/bash 使用 docker update 命令动态调整内存限制&#xff1a; 重新运行一个容器 docker run -m 512m my_container 修改运行中容器 显示运行中容器 d…

深入理解 Goroutines 和 Go Scheduler

本文将重点帮助您了解 Golang 中的 goroutines。Go 调度程序如何工作以在 Go 中实现最佳并发性能。我会尽力用简单的语言解释,这样你就可以理解了。 我们将介绍什么是操作系统中的线程和进程,什么是并发,为什么实现并发很难,以及 goroutines 如何帮助我们实现并发。然后,…