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

spring boot日志

    • 日志介绍
    • 日志的使用
    • 日志级别
    • 日志持久化
    • 更简单的输入日志
    • lombok的运行原理

日志介绍

日志的作用:
1:发现问题;
2:定位问题;
3:记录用户的行为:看哪些是方法用户;还能拿到用户的ip; 如果一个ip试了很多用户和密码;我就知道这个ip有问题;给它拉黑。
4:记录系统操作日志;达到一个数据恢复的功能

spring boot的日志:
spring boot内置的是日志框架SIf4j;我们直接在程序调用Sif4j输出日志即可。
在这里插入图片描述
这个是代理日志;日志经过这里然后这个代理会看适合用哪种实现;就给它转过去。(跟租房一样;代理;你找到他们把要求提出来他们就能帮你找到最合适的房子;你自己去找虽然也行;但是没那么容易找到合适的)

日志和sout区别:
这个内置的日志和idea的sout打印内容有什么区别呢;能否有sout扮演这样的一个角色?
看看效果;没有对比就没有伤害;sout虽然能解决时间和地点的问题;麻烦一点;但是还有其它的问题。没办法信息的筛选;给你打印一堆没用的;不支持持久化。
在这里插入图片描述

日志的使用

1:得到日志对象
固定写法:得是类级别的;私有的;每个类都有它自己的日志文件;需要具体打印是哪个类的日志。静态好;在方法里直接调用。不希望别人能修改 ;final。
在这里插入图片描述
在这里插入图片描述

2:使用日志对象提供的方法打印日志。
提供很多方法:级别的不同;debug是调试的时候打印。这些方法都是用来打印日志的。
在这里插入图片描述
测试结果:只打印三个;不设置的话;默认是info级别的。大于这个级别才能输出
在这里插入图片描述
解析一下注解的内容:
在这里插入图片描述

日志级别

1:DEBUG(调试):用于输出详细的调试信息,通常只在开发和调试阶段使用。:
2:INFO(信息):用于输出一般性的信息,用于确认应用程序正常运行,但不需要引起特别关注。
3:WARNING(警告):用于输出可能会导致错误或异常情况的警告信息,但不会中断应用程序的正常执行。
4:ERROR(错误):用于输出错误信息,表示应用程序遇到了可恢复的错误,但该错误可能会影响应用程序的正常运行。
5:CRITICAL(严重):用于输出严重的错误信息,表示应用程序遇到了无法恢复的严重错误,可能导致应用程序崩溃或不可用。
6:FATAL(致命的):fatal我们没法操作;致命只会出现在代码异常导致的错误;自动帮你写的日志。
这些级别通常按照严重性递增的顺序排列

如何设置日志级别:
配置文件设置logging.level配置项
在这里插入图片描述
我们可以针对指定目录下设置日志级别:

在这里插入图片描述

日志持久化

日志持久化两种实现方式:
1.设置的是绝对路径;所以不同系统的这个路径是不同;所以项目要多个配置文件是有道理的。不建议写C盘;C盘要求的权限比较高;但是我当前只有一个C盘;取决你当前的用户有没有权限;管理员。比如你跟人家共享linux云服务器;你就不是管理员了。(写两个斜杠比较保险;有时候可能会是转义符。路径永远不要出现中文和空格避免出现不必要的麻烦事)

在这里插入图片描述
如果是重启服务器;再次生成的日志是拼接在这个文件原本的日志后面

2.不设置保存路径;只设置名字;会自动的把日志保存在idea的工作路径上
logging.file.name=springboot_logger.log

如果我全都要呢;
在这里插入图片描述
在这里插入图片描述
这个日志保存路径是针对当前项目的;不同项目的保存路径是不同的。如果两个Spring Boot项目的日志文件保存路径相同且没有设置 name 属性,那么它们将共享相同的默认日志文件名。默认情况下,Spring Boot 使用 “spring.log” 作为日志文件的名称。
问题:日志不会消失;持久化;如果运行个十年八年;那10g8g的。打开都困难;更别说查询内容。
解决的方案;可以设置最大文件大小(当这个文件超过10MB就会重新建一个新的;默认大小是10MB;你可以自己设置。新建的会文件就在后面;不是覆盖;是接着往后的;文件名spring1.log、spring2.log……)
在这里插入图片描述

更简单的输入日志

如果我们使用上述的方法;每个类都得重复写LoggerFactory.getLogger(xxx.class) ;使用lombok更简单输出。
用注解来代替这些固定的东西。(得添加lombok和lombok插件)
在这里插入图片描述
在这里插入图片描述
随后就可以直接使用log对象

lombok的运行原理

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
编译时把注解换成对应的字节码;查看方式;你在target找到相应的字节码.class文件(把这个字节码拖到idea就自动帮你还原会java代码)
spring的注解是在运行时期才起作用的;lombok的其它方法都是编译期

相关文章:

spring boot日志

日志介绍日志的使用日志级别日志持久化更简单的输入日志lombok的运行原理 日志介绍 日志的作用: 1:发现问题; 2:定位问题; 3:记录用户的行为:看哪些是方法用户;还能拿到用户的ip&am…...

【Vue2.0源码学习】虚拟DOM篇-Vue中的DOM-更新子节点

文章目录 1. 前言2. 更新子节点3. 创建子节点4. 删除子节点5. 更新子节点6. 移动子节点7. 回到源码8. 总结 1. 前言 在上一篇文章中,我们了解了Vue中的patch过程,即DOM-Diff算法。并且知道了在patch过程中基本会干三件事,分别是:…...

rsync

配置rsync源服务器: #建立/etc/rsyncd.conf 配置文件 vim /etc/rsyncd.conf #添加以下配置项 uid root gid root use chroot yes #禁锢在源目录 address 192.168.80.10 …...

javascript:void(0)

javascript:void(0) 是一个 JavaScript 中常见的使用方式&#xff0c;它通常用于在 HTML 中作为链接的 href 属性值。 在 HTML 中&#xff0c;链接&#xff08;<a> 元素&#xff09;的 href 属性指定了链接目标的 URL。当用户点击该链接时&#xff0c;浏览器会加载该 UR…...

ThingsBoard教程(五三):规则节点解析 Kafka Node, MQTT Node

Kafka Node Since TB Version 2.0 Kafka节点将消息发送到Kafka代理。它可以接收任何类型的消息。该节点会通过Kafka生产者将记录发送到Kafka服务器。 配置 主题模式 - 可以是静态字符串,也可以是使用消息元数据属性解析的模式。例如${deviceType}引导服务器 - 用逗号分隔的…...

基于PHP实现的网上留言管理系统的设计

摘 要 随着互联网技术的迅猛发展,网络已经充斥到我们生活的方方面面,网上留言系统已经成为各种网站不可或缺的一个组成部分。一个设计美观、功能完善的网上留言系统是网站吸引网民的一个重要因素。同时,它还为网络用户提供了一个多人参与的信息交流平台。基于PHP实现的网上…...

【9 Vue全家桶 – Vuex状态管理】

1 什么是状态管理 其实是数据管理但是为了更好的指出是由于状态的变化导致数据的变化(响应式数据),我们称之为状态管理. 2 Vuex的状态管理 组件只能直接读取state,而不能直接修改state,必须通过mutation才能修改.(pinia可以直接读取和修改state) 3 Vuex的安装 npm install …...

Oracle游标学习

declare-- 1 声明一个游标cursor emp_cursor isselect ID,XM,KSNO from ZGXX where rownum < 10; v_stu_info emp_cursor%rowtype; -- %rowtype: 声明 emp表的所有字段 begin-- 2 开启游标open emp_cursor;-- 3 获取数据&#xff08;一次获取一行&#xff09;循环获取 去掉…...

几种常用的正则表达式

1、身份证号正则表达式 身份证号是一串18位数字和字母的组合&#xff0c;其中最后一位可能为数字或者字母 X。以下是可以用于匹配身份证号的正则表达式&#xff1a; /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[Xx\d]$/上述正则表达式中包含…...

华为OD机试真题 Java 实现【快速开租建站】【2023Q1 200分】,附详细解题思路

一、题目描述 当前IT部门支撑了子公司颗粒化业务&#xff0c;该部门需要实现为子公司快速开租建站的能力&#xff0c;建站是指在一个全新的环境部署一套IT服务。 每个站点开站会由一系列部署任务项构成&#xff0c;每个任务项部署完成时间都是固定和相等的&#xff0c;设为1。…...

照片中对象识别模型YOLOv3在iOS项目中的浅析与使用

本文所指的YOLOv3模型为苹果开发者官网提供的图形识别对象的CoreML模型&#xff0c;可识别80种对象&#xff0c;并给出识别的对象在图形中的位置和大小信息。 我们可以直接在官网下载该模型&#xff1a; 机器学习 - 模型 - Apple Developer 然后直接将模型拖入工程中&#x…...

Caffeine 本地高速缓存工具类

目录 Caffeine工具类方式 SpringBoot 整合 Caffeine 缓存 &#xff08;SpringCache模式&#xff09; 驱逐策略 开发使用 Caffeine是一种高性能的缓存库&#xff0c;是基于Java 8的最佳&#xff08;最优&#xff09;缓存框架&#xff0c;性能各方面优于guava。 Caffeine工具…...

加密解密软件VMProtect教程(八)许可制度之序列号生成器

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…...

单源最短路的建图

1.热浪 信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn)http://ybt.ssoier.cn:8088/problem_show.php?pid1379 很裸的单源最短路问题&#xff0c;n2500,可以用dijksta或者spfa都能过&#xff0c;下面展示spfa的做法 #include<bits/stdc.h> usi…...

MyBatis基本操作及SpringBoot单元测试

目录 一、什么是单元测试&#xff1f; 1.1 单元测试的好处 1.2 单元测试的实现步骤 1.2.1 生成单元测试类&#xff1a; 1.2.2 SpringBootTest注解 1.2.3 检验方法结果&#xff1a; 二、利用MyBatis实现查询操作 2.1单表查询 2.2 参数占位符 #{} 和 ${} 2.2.1 ${} 字符…...

Linux之创建进程、查看进程、进程的状态以及进程的优先级

文章目录 前言一、初识fork1.演示2.介绍3.将子进程与父进程执行的任务分离4.多进程并行 二、进程的状态1.进程的状态都有哪些&#xff1f;2.查看进程的状态2.运行&#xff08;R&#xff09;3.阻塞4.僵尸进程&#xff08;Z&#xff09;1.僵尸状态概念2.为什么要有僵尸状态&#…...

k8s部署rabbitmq

docker pull rabbitmq:3.9.28-management 1.部署模板 apiVersion: v1 kind: Service metadata:name: rabbitmq spec:ports:- name: amqpport: 5672targetPort: 5672- name: managementport: 15672targetPort: 15672selector:app: rabbitmq---apiVersion: apps/v1 kind: Statef…...

关于QGroundControl的软件架构的理解

首先QGC是基于QT平台开发&#xff0c;个人理解软件架构即为项目前后端结构&#xff0c;以及前后端数据交互的逻辑。下面是对QGroundControl源码的一些个人理解&#xff0c;写这个博客只是为了记录下来&#xff0c;防止时间久了忘记&#xff0c;过程中看了一些大佬的博客来帮助理…...

Android 文本识别:MLKIT + PreviewView

随着移动设备的普及和摄像头的高像素化&#xff0c;利用相机进行文本识别成为了一种流行的方式。MLKit 是 Google 提供的一款机器学习工具包&#xff0c;其中包含了丰富的图像和语言处理功能&#xff0c;包括文本识别。PreviewView 是 Android Jetpack 的一部分&#xff0c;它提…...

刮泥机的分类有哪些及组成部分

刮泥机的分类有哪些及组成部分 刮泥机的分类&#xff1a; 刮泥机主要包括&#xff1a;周边传动刮泥机、中心传动浓缩刮泥机。 1、中心传动浓缩刮泥机&#xff1a;主要由溢流装置、大梁及拦杆、进口管、传动装置、电器箱、稳流筒、主轴、浮渣耙板、刮集装置、水下轴承、小刮刀、…...

Qt编程基础 | 第六章-窗体 | 6.2、VS导入资源文件

一、VS导入资源文件 1.1、导入资源文件 步骤一&#xff1a; 将所有图片放到各自文件夹下&#xff0c;并将文件夹拷贝到资源文件&#xff08;.qrc文件&#xff09;的同级目录下&#xff0c;如下&#xff1a; 步骤二&#xff1a; 新建VS项目的时候&#xff0c;系统会自动建好一…...

NET框架程序设计-第4章类型基础

4.1 所有类型的基类型&#xff1a;System.Object CLR 要求每个类型最终都要继承自 System.Object 类型。 两种类型定义&#xff1a; 1&#xff09;隐式继承 //隐式继承 Object class Employee{}2&#xff09;显式继承 class Employee:System.Object{}System.Object 主要的公…...

Java设计模式-备忘录模式

简介 在软件开发中&#xff0c;设计模式是为了解决常见问题而提出的一种经过验证的解决方案。备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许我们在不破坏封装性的前提下&#xff0c;捕获和恢复对象的内部状态。 备忘录模式是一种…...

Zookeeper集群 + Kafka集群

Zookeeper 概述 Zookeeper 定义 Zookeeper是一个开源的分布式的&#xff0c;为分布式框架提供协调服务的Apache项目。 Zookeeper 工作机制 Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式设计的分布式服务管理框架&#xff0c;它负责存储和管理大家都关心的数…...

“邮件营销新趋势,这个平台让你收获颇丰!

随着各媒体平台的迅速发展&#xff0c;2023年大家更专注于视频营销、网红营销、直播营销等营销方式。可以见得&#xff0c;数字媒介手段的发展&#xff0c;对于营销方式也产生了巨大的影响。但是&#xff0c;企业在拥抱新兴的营销方式的同时&#xff0c;也不要忽视传统的营销方…...

Python列表推导

列表推导式 列表推导式创建列表的方式更简洁。常见的用法为&#xff0c;对序列或可迭代对象中的每个元素应用某种操作&#xff0c;用生成的结果创建新的列表&#xff1b;或用满足特定条件的元素创建子序列。 例如&#xff0c;创建平方值的列表&#xff1a; squares [] for …...

git使用查看分支、创建分支、合并分支

一、查看分支 查看的git命令如下&#xff1a; git branch 列出本地已经存在的分支&#xff0c;并且当前分支会用*标记 git branch -r 查看远程版本库的分支列表 git branch -a 查看所有分支列表&#xff08;包括本地和远程&#xff0c;remotes/开头的表示远程分支&#xff09;…...

vue3.0与vue2.0

一、生命周期的变化 1.vue2.响应式架构 2.vue3.0 响应式架构图 Vue3.0响应式框架在设计上&#xff0c;将视图渲染和数据响应式完全分离开来。将响应式核心方法effect从原有的Watcher中抽离。这样&#xff0c;当我们只需要监听数据响应某种逻辑回调(例如监听某个text属性的变化…...

HTML 中的常用标签用法

HTML是构建Web页面的基础语言&#xff0c;其中包含许多不同类型的标签。这些标签由尖括号包围&#xff0c;以指示浏览器如何呈现文本。下面是HTML中的一些常用标签以及它们的使用方法&#xff1a; 标题标签&#xff08;h1-h6&#xff09; 标题标签用于标识页面内容的标题&…...

【C++】指针 - 定义和使用,所占内存空间,空指针,野指针,const 修饰指针,指针和数组,指针和函数

文章目录 1. 定义和使用2. 所占内存空间3. 空指针4. 野指针5. const 修饰指针6. 指针和数组7. 指针和函数 1. 定义和使用 数据类型 * 变量名; 指针的作用是&#xff0c;可以通过指针间接访问内存。 内存编号是从 0 开始记录的&#xff0c;一般用十六进制数字表示。可以利用指…...