Spring Boot日志总结

文章目录

  • 1.我们的日志
  • 2.日志的作用
  • 3.使用日志对象打印日志
  • 4.日志框架介绍
  • 5.深入理解门面模式(外观模式)
  • 6.日志格式的说明
  • 7.日志级别
    • 7.1日志级别分类
    • 7.2配置文件添加日志级别
  • 8.日志持久化
  • 9.日志文件的拆分
    • 9.1官方文档
    • 9.2IDEA演示文件分割
  • 10.日志格式的配置
  • 11.更简单的日志输入-lombok依赖
    • 11.1为什么说这个更简单
    • 11.2 lombok的使用
    • 11.3注解的生命周期

1.我们的日志

下面的这个就是可能我们没有正经学习这个日志的时候使用的这个日志输出的方式:

image-20241130094313978

2.日志的作用

1)系统监控:记录系统在不同时段的运行的状态;

2)数据采集:采集用户的行为(喜欢什么类型的信息,浏览的情况,喜欢点击什么),进而进行推荐排序;

3)日志审计:某些行业需要记录日志,不可以随意篡改,这个是国家要求的之类的;

3.使用日志对象打印日志

我们首先需要创建这个日志对象,然后使用这个日志对象对于日志信息进行打印:info实际也是这个日志的级别,我们后面会讲到的;

image-20241130095044671

唯一需要提醒的就是这个地方我们的这个logger导入的时候这个包的选择,如下图所示:

image-20241130095202054

4.日志框架介绍

我们的这个日志门面是SLF4J但是具体到这个实现上面:是我们的这个spring里面的这个logback之类的进行这个日志的具体的实现的;

image-20241130095316858

5.深入理解门面模式(外观模式)

我们通过这个例子:演示一下这个门面模式是如何实现的(模拟实现);

首先我们需要明白,下面的这个就是定义一个灯的接口,分别使用这个卧室的灯,大厅的灯分别对于这个接口进行实现;

image-20241130102240724

下面的这个就是三个雷分别对于这个接口里面的方法进行实现:

image-20241130102221853

我们下面的这个LightFacade就是我们的门面:在这个门面里面,我们创建这个对象,在我们的主函数里面,直接使用这个门面进行方法的调用;

image-20241130102321656

1)这个里面的LightFacade就是我们上面说的SLF4J这个门面,就是表面上是有这个进行管理的;

2)这个里面的HallLight之类的就是我们的lombok,就是这些子系统对于这个功能进行实现的;

3)通过这个类比的案例,可以帮助我们明白这个门面模式和内部的具体实现之间的关系;

6.日志格式的说明

getlogger里面的这个就是这个类的class属性,这样打印的时候,我们根据这个日志就可以直接进行这个定位,当然这个参数是可以进行修改的,但是我们一般就是写作这个类名.class的样子;

image-20241130103050040

具体日志格式说明:这个包含了打印日志的日期,级别,以及这个进行的名字和进程的ID和我们的线程的名称,日志对象的名字和我们的具体的日志内容;

image-20241130114310632

7.日志级别

7.1日志级别分类

image-20241130103417026

演示:下面的这个就是选择了其中的五个级别的日志,但是发现最后这个控制台上面只有三个,这个就是我们的spring自己处理导致的;

如果我们想要把其他的显示出来,可以在这个7.2里面的这个样子一样,在配置文件里面添加这个日志的级别设置;

image-20241130104104350

7.2配置文件添加日志级别

配置日志级别:下面的这个就是打印debug级别的日志;

image-20241130104158418

8.日志持久化

就是我们的日志如果是仅仅在这个控制台上面显示,重启之后就会消失,持久化就是让这个日志一直显示,因此我们可以把这个日志的信息打印到这个磁盘的文件里面去 ;

下面的这个path就是设置这个文件的路径;

image-20241130104817134

这个时候对应的目录文件里面就是我们的这个日志信息:

image-20241130104844727

9.日志文件的拆分

9.1官方文档

背景:我们的一个日志文件里面的这个内容过多,也是不方便我们进行管理和查看的,因此我们可以使用这个日志文件的分割把我们的这个日志文件分割成为多个不同大小的文件,方便我们进行管理和查看;

image-20241130110539991

9.2IDEA演示文件分割

idea演示日志文件的分割:下面的这个2KB主要是为了演示这个拆分文件的效果;

image-20241130110931109

10.日志格式的配置

可能有些同学的这个控制台上面的日志不是彩色的,全部是黑白的,可以按照下面的这个方式进行配置;

image-20241130113409941

下面的这个就是添加vm options(modify options)

image-20241130114855853

image-20241130112024686

在这个新出现的页面添加下面的这个内容

image-20241130111953597

11.更简单的日志输入-lombok依赖

11.1为什么说这个更简单

因为下面的这个创建对象,每一个类里面都要写,显得很麻烦,因此我们可以使用更简单的方式;

image-20241130113055472

11.2 lombok的使用

添加这个@SLF4J这个注解(属于我们的这个lombok依赖下面的),这个时候那个创建对象的一行代码就不用写了,直接使用这个log对象替代即可;

image-20241130115035954

11.3注解的生命周期

我们的这个注解的生命周期就是源码阶段,编译的时候就消失了,这个可以通过我们的反编译文件(target目录下面的)进行查看;

我们可以看到,在这个文件里面其实创建对象的这个方式和我们最开始的这个创建对象的这个方式完全一样,就是这个对象的名字变化了,这个就是我们上面使用的log对象的由来;

可以看到这个上面添加的注解已经消失了,这个就证明了我们的这个注解的生命周期就只会在这个源码的阶段生效~~

我们可以看到,在这个文件里面其实创建对象的这个方式和我们最开始的这个创建对象的这个方式完全一样,就是这个对象的名字变化了,这个就是我们上面使用的log对象的由来;

可以看到这个上面添加的注解已经消失了,这个就证明了我们的这个注解的生命周期就只会在这个源码的阶段生效~~

image-20241130115156313

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Transformer 模型:序列数据处理的自注意力神经网络架构

摘要: 本文全面深入地探讨 Transformer 模型,这一基于自注意力机制的神经网络结构在序列数据处理领域具有开创性意义。详细阐述其架构组成、自注意力机制原理、在自然语言处理等多方面的应用,并提供丰富的代码示例以助力读者深入理解其实现细…

docker 安装mysql8.4.0

1、拉取mysql8.4.0镜像 docker pullmysql:8.4.0-oraclelinux8查看镜像 docker images2、新建宿主机本地目录:用来挂载MySQL容器所产生的数据的目录 mkdir -p /home/admin/data/mysql /home/admin/logs/mysql /home/admin/conf/mysql3、在/home/admin/conf/mysql目…

Android Studio的AI工具插件使用介绍

Android Studio的AI工具插件使用介绍 一、前言 Android Studio 的 AI 工具插件具有诸多重要作用,以下是一些常见的方面: 代码生成与自动补全 代码优化与重构 代码解读 学习与知识获取 智能搜索与资源推荐实际使用中可以添加注释,解读某段代…

【Python网络爬虫笔记】2-HTTP协议中网络爬虫需要的请求头和响应头内容

1 HTTP 协议整理 HTTP(Hyper Text Transfer Protocol)即超文本传输协议,是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议,直白点儿,就是浏览器和服务器之间的数据交互就是通过 HTT…

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲

本文是Andrew演讲的中文翻译,你可以直接观看视频了解演讲的全部内容,此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块,你可以在 Arudpilot官网(https://ardupilot.org) 获取该视频: 你也可以直接通过Bilibili链…

物料理解笔记·蓝白段子线·端子线座子焊接反了怎么处理!!!

目录 蓝白端子排线 端子线座子焊接错了怎么办 端子线如何拆线 编写不易,请勿搬运,仅供学习,感谢理解 蓝白端子排线 蓝白端子排线,这种端子线常用与编码电机的接线,或者在板子上通过提供段子线的接口,通…

BUUCTF—Reverse—GXYCTF2019-luck_guy(9)

下载附件,照例扔入Exeinfo PE查看信息 可执行文件,IDA 64位直接干 进main函数,F5反编译,看主要处理函数,跳转进去 查看,点进patch_me(v4)看看是怎么回事 这里已经相当清楚,逻辑就是如果你输入的…

jmeter学习(7)命令行控制

jmeter -n -t E:\IOT\test2.jmx -l E:\IOT\output\output.jtl -j E:\IOT\output\jmeter.log -e -o E:\IOT\output\report IOT下创建output 文件夹,jmx文件名避免中文,再次执行output.jtl不能有数据要删除

OpenCV 图像轮廓查找与绘制全攻略:从函数使用到实战应用详解

摘要:本文详细介绍了 OpenCV 中用于查找图像轮廓的 cv2.findContours() 函数以及绘制轮廓的 cv2.drawContours() 函数的使用方法。涵盖 cv2.findContours() 各参数(如 mode 不同取值对应不同轮廓检索模式)及返回值的详细解析,搭配…

智能探针技术:实现可视、可知、可诊的主动网络运维策略

网络维护的重要性 网络运维是确保网络系统稳定、高效、安全运行的关键活动。在当今这个高度依赖信息技术的时代,网络运维的重要性不仅体现在技术层面,更关乎到企业运营的方方面面。网络运维具有保障网络的稳定性、提升网络运维性能、降低企业运营成本等…

Elasticsearch集群如何实现高可用和一致性

Elasticsearch集群如何实现高可用和一致性 Elasticsearch (ES) 的高可用性是指集群在部分节点或分片出现故障时,仍能确保数据的持续可用和集群的稳定运行。ES 通过分片机制、主从结构、分配策略、故障恢复和分布式一致性等多种机制实现高可用。 1. 分片机制和副本…

实现Linux平台自定义协议族

一 简介 我们常常在Linux系统中编写socket接收TCP/UDP协议数据,大家有没有想过它怎么实现的,如果我们要实现socket接收自定义的协议数据又该怎么做呢?带着这个疑问,我们一起往下看吧~~ 二 Linux内核函数简介 在Linux系统中要想…

数组和链表OJ题

leetcode用编译器调试的技巧 数组和链表练习题 leetcode/reverse_Link/main.c Hera_Yc/bit_C_学习 - 码云 - 开源中国 1、移除元素 ​​​​​​27. 移除元素 - 力扣(LeetCode) int removeElement(int* nums, int numsSize, int val) {int src 0, …

VSCode 使用教程:项目使用配置、使用哪些插件、Live Server使用问题及解决方案(你想要的,都在这里)

VSCode的配置: Ⅰ、VSCode 可能需要的项目配置:1、项目颜色主题的切换:其一、点击设置 -> 选择主题 -> 选择颜色主题:其二、通过上下键操作,选择想要的主题: 2、项目文件图标主题的切换:其…

28 基于51单片机的两路电压检测(ADC0808)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,通过ADC0808获取两路电压,通过LCD1602显示 二、硬件资源 基于KEIL5编写C代码,PROTEUS8.15进行仿真,全部资源在页尾,提供…

宠物空气净化器推荐2024超详细测评 希喂VS霍尼韦尔谁能胜出

最近有粉丝一直在评论区和后台探讨宠物空气净化器是不是智商税的问题,有人认为宠物空气净化器肯定不是智商税,有些人认为将其购回家就是个没用的东西,还占地方,双方各有自己的观点。 其实宠物空气净化器和普通的空气净化器是有很大…

鸿蒙学习笔记:CheckboxGroup组件

本次鸿蒙CheckboxGroup组件实战,先创建CheckboxGroupDemoAbility与CheckboxGroupDemo.ets页面,在ets页面以Row、Column布局呈现界面。利用CheckboxGroup管理爱好相关Checkbox,通过状态记录及“确定”按钮实现选择展示。设置页面为首页后启动应…

[Java]微服务之分布式事务

介绍 下单业务,前端请求首先进入订单服务,创建订单并写入数据库。然后订单服务调用购物车服务和库存服务: 购物车服务负责清理购物车信息库存服务负责扣减商品库存 问题分析: 下单过程中, 订单服务创建订单, 插入自己的数据库, 执行成功购物车服务, 清…

如何在谷歌浏览器中使用开发者工具调试网页

在数字时代,网页开发和调试已成为每个前端开发人员必备的技能。谷歌浏览器(Google Chrome)提供了强大的开发者工具,帮助开发者快速定位和修复网页中的问题。本文将详细介绍如何使用Chrome开发者工具来调试网页,同时也会…