Lombok的@Slf4j注解使用并集成Logback日志框架调试代码

1. 概述

我们平时在写代码的时候,除了IDE断点的形式以外,还会用到System.out.println在控制台中输出相关的调试信息。本文介绍了在控制台中输出调试信息的另一种实现方式,使用Logback日志框架可以在控制台中用自定义的格式,输出更详细的信息,还能将日志信息保存在文件中,以便后续分析。lombok的@Slf4j注解省略了创建日志类的代码,可以简化代码开发。本文使用Logback作为Slf4j日志框架的具体实现,这也是SpringBoot中默认集成的日志系统,相比Log4j日志框架,具有更好地性能和更简化的配置。

1.1 示意图

  • 使用日志框架和直接输出的结果对比
    在这里插入图片描述

2. 代码

  1. 引入依赖
<!--Lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>RELEASE</version><scope>compile</scope>
</dependency>
<!--日志依赖-->
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.36</version>
</dependency>
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version>
</dependency>
  1. 编写配置文件logback.xml,放在resources目录下
<?xml version="1.0" encoding="UTF-8"?>
<!-- Logback 配置文件 -->
<configuration><!-- 控制台输出 appender --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><!-- 日志格式编码器 --><encoder><!-- 控制台输出格式,日期,线程,日志级别, --><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %5level %logger - %msg%n</pattern></encoder></appender><!-- 文件输出 appender --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志格式编码器 --><encoder><!-- 文件输出格式,日期,线程,日志级别,日志记录器的名称(和当前类的全限定类名一般相同),输出信息 --><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern><!-- 字符编码 --><charset>utf-8</charset></encoder><!-- 日志文件路径 --><file>log/output-logback.log</file><!-- 日志滚动策略 --><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><!-- 日志文件名模式 --><fileNamePattern>log/output.log.%i</fileNamePattern></rollingPolicy><!-- 触发策略:基于文件大小 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><!-- 最大日志文件大小 --><MaxFileSize>100MB</MaxFileSize></triggeringPolicy></appender><!-- 根日志级别设置为 DEBUG --><root level="DEBUG"><!-- 引用控制台输出 appender,可选 --><appender-ref ref="CONSOLE" /><!-- 引用文件输出 appender,可选 --><appender-ref ref="FILE" /></root></configuration>

注意事项

  • root 标签中的两种输出形式都是可选的,你可以只在控制台输出
  • System.out.println和INFO级别差不多
  • 日志输出级别由简略到详细依次为ERROR<WARN<INFO<DEBUG<TRACE,一定要注意,你在配置中的级别,一定要高于等于你在代码中使用的级别,例如:你配置中写的是INFO,代码中写的是DEBUG,那么不会输出日志。
  • 示例代码,结果见1.1中示意图,代码中的log对象是被@Slf4j注解初始化的
import lombok.extern.slf4j.Slf4j;@Slf4j
public class Test {public static void main(String[] args) {System.out.println("hello");log.debug("hello"); // 注意:这里的日志级别,就是那个debug,一定要低于等于配置中的级别}
}

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

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

相关文章

代码随想录算法训练营第35天 | 435. 无重叠区间 ,763.划分字母区间 , 56. 合并区间

贪心算法章节理论基础&#xff1a; https://programmercarl.com/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 435. 无重叠区间 题目链接&#xff1a;https://leetcode.cn/problems/non-overlapping-intervals/ 思路&#xff1a; 相信…

2024年腾讯云服务器优惠政策整理,大降价!

腾讯云服务器多少钱一年&#xff1f;62元一年起&#xff0c;2核2G3M配置&#xff0c;腾讯云2核4G5M轻量应用服务器218元一年、756元3年&#xff0c;4核16G12M服务器32元1个月、312元一年&#xff0c;8核32G22M服务器115元1个月、345元3个月&#xff0c;腾讯云服务器网txyfwq.co…

【两颗二叉树】【递归遍历】【▲队列层序遍历】Leetcode 617. 合并二叉树

【两颗二叉树】【递归遍历】【▲队列层序遍历】Leetcode 617. 合并二叉树 解法1 深度优先 递归 前序解法2 采用队列进行层序遍历 挺巧妙的可以再看 ---------------&#x1f388;&#x1f388;题目链接&#x1f388;&#x1f388;------------------- 解法1 深度优先 递归 前…

开关量传感器与LoRa技术结合,实现智能鱼塘养殖监控方案

开关量传感器与LoRa技术结合&#xff0c;可以为智能鱼塘养殖提供高效、实时的监控方案。通过部署开关量传感器和LoRa通信设备&#xff0c;可以实现对鱼塘水质、水位、氧气含量等关键参数的监测和远程管理&#xff0c;为养殖场主提供及时准确的数据支持&#xff0c;帮助其科学管…

Docker使用数据卷自定义镜像Dockerfile

目录 一、数据卷 1.1、简介 1.2、用途 1.3、特性&#xff1a; 1.4、数据卷相关操作 1.5、使用情况 二、自定义镜像Dockerfile 2.1、Dockerfile 2.1、使用情况 2.3、具体操作 a、自定义centos 创建文件 编辑内容 制作镜像 测试 b、自定义tomcat 创建文件 编…

Windows安装VNC连接工具并结合cpolar实现远程内网Ubuntu系统桌面

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…

4.1 统计学基本概念

1、统计学含义 统计学是一门收集、处理、分析、解释数据并从数据中得出结论的科学 统计学的对象是数据。 数据的形式&#xff1a;分数字和文字。 2、数据分析步骤 收集数据——处理数据——分析数据——解释数据 数据收集——取得统计数据数据处理——将数据用图表等形式展…

qml 项目依赖

文章目录 出现的问题最终对比下一步 把 apptestQml3_6.exe 放到一个单独目录下&#xff0c;执行 windeployqt.exe ./apptestQml3_6.exe但是出了很多问题&#xff0c;根本运行不起来。 但是在release目录下执行下&#xff0c;程序能跑起来。 根据错误提示&#xff0c;进行添加。…

C#,动态规划(DP)金矿问题(Gold Mine Problem)的算法与源代码

1 金矿问题&#xff08;Gold Mine Problem&#xff09; 给定一个N*M尺寸的金矿&#xff0c;每个点都有一个非负数表示当前点所含的黄金数目&#xff0c;最开始矿工位于第一列&#xff0c;但是可以位于任意行。矿工只能向右&#xff0c;右上&#xff0c;右下三个方向移动。问该…

如何在Linux使用Docker部署Nexus容器并实现公网访问本地仓库【内网穿透】

文章目录 1. Docker安装Nexus2. 本地访问Nexus3. Linux安装Cpolar4. 配置Nexus界面公网地址5. 远程访问 Nexus界面6. 固定Nexus公网地址7. 固定地址访问Nexus Nexus是一个仓库管理工具&#xff0c;用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关&#xff0c;可…

Windows虚拟主机如何开启网页debug模式

前不久&#xff0c;有客户咨询想要知道如何开启网页debug模式,以便后期他网站出现异常可以自行排查。这边了解到他当前使用的是Hostease 的Windows 虚拟主机&#xff0c;而开启网页debug模式的操作步骤如下&#xff1a; 1.Hostease的Windows虚拟主机都是带Plesk面板的,因此需要…

HarmonyOS—开发云数据库

您可以在云侧工程下开发云数据库资源&#xff0c;包括创建对象类型、在对象类型中添加数据条目、部署云数据库。 创建对象类型 对象类型&#xff08;即ObjectType&#xff09;用于定义存储对象的集合&#xff0c;不同的对象类型对应的不同数据结构。每创建一个对象类型&#…

盘点6个最受欢迎的 Vue.js UI 库

在2024年&#xff0c;随着Vue.js的不断普及和发展&#xff0c;这个轻量级、易于学习的JavaScript框架在前端开发者中的受欢迎程度日益上升。Vue.js之所以受到青睐&#xff0c;很大一部分原因是其庞大的生态系统&#xff0c;特别是众多的UI库&#xff0c;这些库提供了预先构建的…

Cadence Allegro PCB设计88问解析(三十四) 之 Allegro 中 DDR等长处理

一个学习信号完整性仿真的layout工程师 在进行PCB设计时 &#xff0c;会遇到一些单端的信号要做等长处理&#xff0c;比如DDR的数据线&#xff0c;交换机之间的数据线之类的。这时需要我们建立match group&#xff0c;来做等长。下面简单介绍在Allegro中怎么做等长&#xff1a;…

【c语言】探索联合和枚举---解锁更多选择

前言 上一篇 讲解的是结构体相关知识&#xff0c;接着本篇主要讲解的是 联合和枚举 相关知识 结构体、联合体和枚举都属于 自定义类型。 那么接下来就跟上我的节奏&#xff0c;准备发车~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xf…

Django前后端分离之后端基础3

12 案例&#xff1a;登录_哔哩哔哩_bilibili 参考大佬的B站视频教程笔记 目录 登录接口的实现会话机制成功后的信息保存&#xff1a; 中间件的使用&#xff0c;解决登录保护使未登录过的用户进行登录 Form组件 - 主要作用&#xff1a; Form组件信息的配置 ModelForm组件…

【MySQL】MySQL数据管理——DDL数据操作语言(数据表)

目录 创建数据表语法列类型字段属性SQL示例创建学生表 查看表和查看表的定义表类型设置表的类型 面试题&#xff1a;MyISAM和InnoDB的区别设置表的字符集删除表语法示例 修改表修改表名语法示例 添加字段语法示例 修改字段语法示例 删除字段语法示例 数据完整性实体完整性域完整…

使用Fragments(片段)提升你的Vue.js开发体验

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

HCIA-Datacom实验指导手册:6 构建基础 WLAN 网络

HCIA-Datacom实验指导手册&#xff1a;6 构建基础 WLAN 网络 一、实验介绍&#xff1a;二、实验拓扑&#xff1a;三、实验目的&#xff1a;四、配置步骤&#xff1a;1.掌握ap上线的配置方式和上线过程。ac配置验证 步骤 2 掌握隧道模式和旁挂模式下ac的配置。步骤 3 掌握查看ap…

【Vue3】回顾watch,学习watchEffect

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…