Spring Boot日志总结

news2024/12/27 1:37:32

文章目录

  • 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

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

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

相关文章

2025年Java面试八股文大全

很多人会问Java面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这模式,但你一定要去背,因为不背你就进不了大厂。 国内的互联网面试,恐怕是现存的、最接近科举考试的制度。 而且,我国的八股文确…

DPDK用户态协议栈-Tcp Posix API 1

和udp一样&#xff0c;我们需要实现和系统调用一样的接口来实现我们的tcp server。先来看看我们之前写的unix_tcp使用了哪些接口&#xff0c;这边我加上两个系统调用&#xff0c;分别是接收数据和发送数据。 #include <stdio.h> #include <arpa/inet.h> #include …

记一次搞校园网的经历

接教室的校园网&#xff0c;到另一个屋子玩电脑&#xff0c;隔墙想放大一下AP的信号&#xff0c;发现死活不行 这是现状 由于校园网认证的存在&#xff0c;无法用桥接&#xff0c;桥接需要路由器有IP&#xff0c;而这个IP无法用未刷机的路由器来打开校园网页面认证 解决 将一…

RTC 实时时钟实验

利用 ALIENTEK 2.8 寸 TFTLCD 模块来显示日期和时间&#xff0c;实现一个简单的时钟。 STM32F1 RTC 时钟简介 STM32 的实时时钟&#xff08; RTC &#xff09;是一个独立的定时器。 STM32 的 RTC 模块拥有一组连续计数 的计数器&#xff0c;在相应软件配置下&#xf…

接口性能优化宝典:解决性能瓶颈的策略与实践

目录 一、直面索引 &#xff08;一&#xff09;索引优化的常见场景 &#xff08;二&#xff09;如何检查索引的使用情况 &#xff08;三&#xff09;如何避免索引失效 &#xff08;四&#xff09;强制选择索引 二、提升 SQL 执行效率 &#xff08;一&#xff09;避免不必…

2021陇剑杯-内存取证

内存分析&#xff08;问1&#xff09; 网管小王制作了一个虚拟机文件&#xff0c;让您来分析后作答&#xff1a; 虚拟机的密码是_____________。&#xff08;密码中为flag{xxxx}&#xff0c;含有空格&#xff0c;提交时不要去掉&#xff09;。 mimikatz一把梭了 flag{W31C0M3…

Ubuntu 安装 MariaDB

安装 MariaDB具体步骤 1、更新软件包索引&#xff1a; sudo apt update2、安装 MariaDB 服务器&#xff1a; sudo apt install mariadb-server3、启动 MariaDB 服务&#xff08;如果未自动启动&#xff09;&#xff1a; sudo systemctl start mariadb4、设置 MariaDB 开机启…

深度学习Python基础(2)

二 数据处理 一般来说PyTorch中深度学习训练的流程是这样的&#xff1a; 1. 创建Dateset 2. Dataset传递给DataLoader 3. DataLoader迭代产生训练数据提供给模型 对应的一般都会有这三部分代码 # 创建Dateset(可以自定义) dataset face_dataset # Dataset部分自定义过的…

Linux下的三种 IO 复用

目录 一、Select 1、函数 API 2、使用限制 3、使用 Demo 二、Poll 三、epoll 0、 实现原理 1、函数 API 2、简单代码模板 3、LT/ET 使用过程 &#xff08;1&#xff09;LT 水平触发 &#xff08;2&#xff09;ET边沿触发 4、使用 Demo 四、参考链接 一、Select 在…

Windows常用DOS指令(附案例)

文章目录 1.dir 查看当前目录2.cd 进入指定目录3.md 创建指定目录4.cd> 创建指定文件5.rd 删除指定空目录6.del 删除指定文件7.copy 复制文件8.xcopy 批量复制9.ren 改名10.type 在命令行空窗口打开文件11.cls 清空DOS命令窗口12.chkdsk 检查磁盘使用情况13.time 显示和设置…

【Linux】匿名管道通信场景——进程池

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;Linux系统编程 这里将会不定期更新有关Linux的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目…

C#基础之集合讲解

文章目录 1 集合1.1 数组1.1.1 简介1.1.2 声明使用1.1.2.1 声明 & 初始化1.1.2.2 赋值给数组1.1.2.3 访问数组元素 1.1.3 多维数组1.1.3.1 声明1.1.3.2 初始化二维数组1.1.3.3 访问二维数组元素 1.1.4 交错数组1.1.5 传递数组给函数1.1.6 Array1.1.6.1 简介1.1.6.2 属性1.1…

Azure DevOps Server:使用甘特图Gantt展示需求进度

自从Azure DevOps Server取消与Project Server的集成后&#xff0c;许多用户都在关注如何使用甘特图来展示项目进度。 在Azure DevOps Server开放扩展Extension功能后&#xff0c;许多开发者或专业开发团队做了很多甘特图Gantt相关的开发工作&#xff0c;使用比较多的是(GANTT …

数据湖的概念(包含数据中台、数据湖、数据仓库、数据集市的区别)--了解数据湖,这一篇就够了

文章目录 一、数据湖概念1、企业对数据的困扰2、什么是数据湖3、数据中台、数据湖、数据仓库、数据集市的区别 网上看了好多有关数据湖的帖子&#xff0c;还有数据中台、数据湖、数据仓库、数据集市的区别的帖子&#xff0c;发现帖子写的都很多&#xff0c;而且专业名词很多&am…

Kali Linux怎么开python虚拟环境

相信很多朋友再学习的过程中都会遇到一些pip失效&#xff0c;或者报错的时候&#xff0c;他们要求我们要使用虚拟环境&#xff0c;但是不知道怎么搭建&#xff0c;下面这篇文章就来告诉你如何搭建虚拟环境&#xff0c;这个方法在所有Linux的服务器都通用&#xff0c;就两行命令…

Flink四大基石之State(状态) 的使用详解

目录 一、有状态计算与无状态计算 &#xff08;一&#xff09;概念差异 &#xff08;二&#xff09;应用场景 二、有状态计算中的状态分类 &#xff08;一&#xff09;托管状态&#xff08;Managed State&#xff09;与原生状态&#xff08;Raw State&#xff09; 两者的…

【数据结构计数排序】计数排序

非比较排序概念 非比较排序是一种排序算法&#xff0c;它不是通过比较元素大小进行排序的&#xff0c;而是基于元素的特征和属性排序。这种排序方法在特定情况下&#xff0c;可以做到比元素比较排序&#xff08;快排&#xff0c;归并&#xff09;更有效率。尤其是在处理大量数…

Java GET请求 请求参数在Body中使用Json格式传参

业务需要调个三方接口 使用GET请求方式 但是&#xff01;请求参数不在Query中&#xff0c;竟然在Body中&#xff0c;使用Json格式传参 在API调试工具里面可以调通 在java代码里&#xff0c;死活调不通 网上搜了搜&#xff0c;找到一个靠谱的&#xff0c;记录一下 import o…

Linux的文件系统

这里写目录标题 一.文件系统的基本组成索引节点目录项文件数据的存储扇区三个存储区域 二.虚拟文件系统文件系统分类进程文件表读写过程 三.文件的存储连续空间存放方式缺点 非连续空间存放方式链表方式隐式链表缺点显示链接 索引数据库缺陷索引的方式优点&#xff1a;多级索引…

[golang][MAC]Go环境搭建+VsCode配置

一、go环境搭建 1.1 安装SDK 1、下载go官方SDK 官方&#xff1a;go 官方地址 中文&#xff1a;go 中文社区 根据你的设备下载对应的安装包&#xff1a; 2、打开压缩包&#xff0c;根据引导一路下一步安装。 3、检测安装是否完成打开终端&#xff0c;输入&#xff1a; go ve…