当前位置: 首页 > article >正文

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


http://www.kler.cn/a/418041.html

相关文章:

  • ARM架构下安装新版docker及docker-compose
  • 贝叶斯统计:高斯分布均值μ的后验分布推导
  • uniapp input只输入一个字符就自动失去焦点
  • GoogleTest做单元测试
  • 【electron-vite】搭建electron+vue3框架基础
  • MATLAB期末复习笔记(中)
  • 大模型开发和微调工具Llama-Factory-->WebUI
  • 架构05-架构安全性
  • 【设计模式系列】备忘录模式(十九)
  • 腾讯云助力央视总台构建国家级新媒体大数据平台
  • 网络工程师——VPN
  • 基于STM32的传感器数据采集系统设计:Qt、RS485、Modbus Rtu协议(代码示例)
  • redis.conf
  • RNN And CNN通识
  • 138.python内置模块sqlalchemy进行sql操作详解
  • RNN模型文本预处理--数据增强方法
  • Linux 常用命令大全与详细讲解
  • leetcode 99. 恢复二叉搜索树
  • 【人工智能基础03】机器学习(练习题)
  • 微前端架构 qiankun
  • 在 Flutter app 中,通过视频 URL 下载视频到手机相册
  • 使用Feign远程调用丢失请求头问题
  • BGE-M3模型结合Milvus向量数据库强强联合实现混合检索
  • Tree搜索二叉树、map和set_数据结构
  • 1074 Reversing Linked List (25)
  • 【AI战略思考13】克服懒惰,保持专注,提升效率,不再焦虑