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.mzph.cn/web/61469.shtml

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

相关文章

「Qt Widget中文示例指南」如何为窗口实现流程布局?(二)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文将展示如何为不…

阿里云服务器(centos7.6)部署前后端分离项目(MAC环境)

mysql安装和部署 下载前准备 确定一下系统的glibc版本,可以使用以下命令进行查看,当前系统glibc版本:2.17 rpm -qa | grep glibclinux系统会自动携带一个数据库,需要把它给卸载掉,通过以下代码可以查看mariadb 并卸…

道路机器人识别交通灯,马路,左右转,黄线,人行道,机器人等路面导航标志识别-使用YOLO标记

数据集分割 train组66% 268图片 validation集22% 91图片 test集12% 48图片 预处理 没有采用任何预处理步骤。 增强 未应用任何增强。 数据集图片: 交通灯 马路 右转 向右掉头 机器人识别 人行横道 黄线 直行或右转 数据集下载: 道路…

偏差-方差权衡(Bias–Variance Tradeoff):理解监督学习中的核心问题

偏差-方差权衡(Bias–Variance Tradeoff):理解监督学习中的核心问题 在机器学习中,我们希望构建一个能够在训练数据上表现良好,同时对未见数据也具有强大泛化能力的模型。然而,模型的误差(尤其…

Linux服务器安装mongodb

因为项目需要做评论功能,领导要求使用mongodb,所以趁机多学习一下。 在服务器我们使用docker安装mongodb 1、拉取mongodb镜像 docker pull mongo (默认拉取最新的镜像) 如果你想指定版本可以这样 docker pull mongo:4.4&#…

STM32 使用ARM Compiler V6 编译裸机 LWIP协议栈报错的解决方法

在lwip 的cc.h 中使用以下宏定义,来兼容 V5 和 V6编译器 #if defined (__ARMCC_VERSION) && (__ARMCC_VERSION > 6010050) /* ARM Compiler V6 */ #define __CC_ARM /* when use v6 compiler define this */ #endifV6编译的速度确实比V5块了好多倍。 …

使用ESP32通过Arduino IDE点亮1.8寸TFT显示屏

开发板选择 本次使用开发板模块丝印为ESP32-WROOM-32E 开发板库选择 Arduino IDE上型号选择为ESP32-WROOM-DA Module 显示屏选择 使用显示屏为8针SPI接口显示屏 驱动IC为ST7735S 使用库 使用三个Arduino平台库 分别是 Adafruit_GFXAdafruit_ST7735SPI 代码详解 首…

图像显示的是矩阵的行和列,修改为坐标范围。

x 3; y 3; f1x x^2 y^2; guance1 f1x; F (x, y) sqrt((x.^2 y.^2 - guance1).^2); % 使用点乘 [x, y] meshgrid(0:1:5, 0:1:5); Z F(x, y); figure; imagesc(Z); % 由于 imagesc 使用矩阵索引作为坐标,我们需要手动添加刻度 % 这里我们假设 x 和 y 的范围…

【K230 CanMV】图像识别-摄像头获取图像 Sensor 函数全解析

引言:随着图像处理技术的不断发展,摄像头在嵌入式系统中的应用越来越广泛,尤其是在智能监控、自动驾驶、机器人视觉等领域。K230作为一款高性能的嵌入式处理器,提供了强大的图像处理能力,支持多种类型的摄像头接入与图…

基于FPGA的FM调制(载波频率、频偏、峰值、DAC输出)-带仿真文件-上板验证正确

基于FPGA的FM调制-带仿真文件-上板验证正确 前言一、FM调制储备知识载波频率频偏峰值个人理解 二、代码分析1.模块分析2.波形分析 总结 前言 FM、AM等调制是学习FPGA信号处理一个比较好的小项目,通过学习FM调制过程熟悉信号处理的一个简单流程,进而熟悉…

论文笔记(五十九)A survey of robot manipulation in contact

A survey of robot manipulation in contact 文章概括摘要1. 引言解释柔顺性控制的概念:应用实例: 2. 需要接触操控的任务2.1 环境塑造2.2 工件对齐2.3 关节运动2.4 双臂接触操控 3. 接触操控中的控制3.1 力控制3.2 阻抗控制3.3 顺应控制 4. 接触操控中的…

拥抱 OpenTelemetry:阿里云 Java Agent 演进实践

作者:陈承 背景 在 2018 年的 2 月,ARMS Java Agent 的第一个版本正式发布,为用户提供无侵入的的可观测数据采集服务。6 年后的今天,随着软件技术的迅猛发展、业务场景的逐渐丰富、用户规模的快速增长,我们逐渐发现过…

学习ASP.NET Core的身份认证(基于Session的身份认证3)

开源博客项目Blog中提供了另一种访问控制方式,其基于自定义类及函数的特性类控制访问权限。本文学习并测试开源博客项目Blog的访问控制方式,测试程序中直接复用开源博客项目Blog中的相关类及接口定义,并在其上调整判断逻辑。   首先是接口A…

电子应用设计方案-31:智能AI音响系统方案设计

智能 AI 音响系统方案设计 一、引言 智能 AI 音响作为一种新兴的智能家居设备,通过融合语音识别、自然语言处理、音频播放等技术,为用户提供便捷的语音交互服务和高品质的音乐体验。本方案旨在设计一款功能强大、性能稳定、用户体验良好的智能 AI 音响系…

可变电阻和电位器

1.可变电阻和电位器 (1)可变电阻:阻值可以调整的电阻。 (2)电位器:为了获得某个电位(电势、电压)的器件。其本质就是在一个固定阻值的电阻中间增 加一个触点,滑动电阻的中…

RK3568平台开发系列讲解(PWM篇)PWM 子系统框架

🚀返回专栏总目录 文章目录 一、PWM 设备驱动层二、PWM 核心层三、PWM 适配器驱动层沉淀、分享、成长,让自己和他人都能有所收获!😄 📢整个 PWM 子系统可以用下面的框图来描述: 再上图中 PWM 子系统被划分为了三个层次, 分别为用户空间、 内核空间和硬件层, 内核空…

CSAPP Cache Lab(缓存模拟器)

前言 理解高速缓存对 C 程序性能的影响,通过两部分实验达成:编写高速缓存模拟器;优化矩阵转置函数以减少高速缓存未命中次数。Part A一开始根本不知道要做什么,慢慢看官方文档,以及一些博客,和B站视频&…

【趣味升级版】斗破苍穹修炼文字游戏HTML,CSS,JS

目录 图片展示 开始游戏 手动升级(满100%即可升级) 升级完成,即可解锁打怪模式 新增功能说明: 如何操作: 完整代码 实现一个简单的斗破苍穹修炼文字游戏,你可以使用HTML、CSS和JavaScript结合来构建…

hadoop环境配置-vm安装+麒麟ubantu

一.VM版本 选择16版本,15版本存在windows蓝屏的情况,也不用设置HV等相关设置 激活下载参考下述博客:https://blog.csdn.net/matrixlzp/article/details/140674802 提前在bois打开SVM设置,不设置无法打开新建的虚拟机 ubantu下载…

会议直击|美格智能亮相2024紫光展锐全球合作伙伴大会,融合5G+AI共拓全球市场

11月26日,2024紫光展锐全球合作伙伴大会在上海举办,作为紫光展锐年度盛会,吸引来自全球的众多合作伙伴和行业专家、学者共同参与。美格智能与紫光展锐竭诚合作多年,共同面向5G、AI和卫星通信为代表的前沿科技,聚焦技术…