spring boot日志

news/2024/11/18 4:25:59/

    • 日志介绍
    • 日志的使用
    • 日志级别
    • 日志持久化
    • 更简单的输入日志
    • 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的其它方法都是编译期


http://www.ppmy.cn/news/83933.html

相关文章

面试进阶齐飞!Github一天万赞的阿里Java系统性能优化有多牛?

前两天在知乎上看到一个问答,说的是: 一个Java程序员具备什么样的素质和能力才可以称得上高级工程师? 这个问题也引发了我的一些思考,可能很多人会说,“作为高级工程师,基础得过硬、得熟练掌握一门编程语…

kubelet源码分析 status_manager状态管理器篇

kubelet源码分析 status_manager状态管理器篇 右上方的statusManager就是本篇要介绍的内容。上一篇kubelet的sync同步函数也介绍过,这篇内容详细介绍状态管理器的作用。 一、简介 status_manager(状态管理器)是 Kubernetes 中的一个组件&am…

STM32F4新建寄存器版本MDK(Keil5)工程(正点原子)

1. 前期准备 1.1 下载 STM32Cube 固件包 1.1.1 ST官网搜索STM32Cube 首先进入ST官网,在搜索栏输入 STM32Cube 找到 STM32CubeF4 点击进去 在这里可以选择版本进行下载,这里我选择1.26.0(后续不使用官方的因为太冗杂了,这里只…

【youcans 的图像处理学习课】21. Haar 小波变换

专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 【youcans 的图像处理学习课】21. Haar 小波变换 1. 小波变换1.1 小波变换基本概念例程 17_1:常用小波族的图像 1.2 连续小波变换1.3 离散小波变换&a…

如何在华为OD机试中获得满分?Java实现【字符串分隔】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

feat:使用企业微信企业微信JS-SDK的onMenuShareAppMessage()实现点击转发自定义分享内容(TypeScript)

背景:企业微信应用使用企业微信JS-SDK的分享接口实现分享样式自定义 原生: 需要实现成: 企业微信JS-SDK 是企业微信面向网页开发者提供的 基于企业微信内 的网页开发工具包。 通过使用企业微信JS-SDK,网页开发者 可借助企业微信…

从《流浪地球2》看多团队任务管理

《流浪地球2》作为春节档热门电影,讲述了地球因为太阳系内其他恒星的影响而不断向外逃离,人类必须采取行动拯救地球和自己的故事,是中国科幻电影的里程碑式影片。影片中充满各种科技元素,令人印象深刻,量子计算机550系…

ASEMI代理长电MCR100-6可控硅的性能与应用分析

编辑-Z 本文主要介绍了新型MCR100-6晶闸管的性能与应用。首先,从晶闸管的基本原理和结构出发,分析了MCR100-6晶闸管的性能特点;其次,探讨了MCR100-6晶闸管在各种电子电路中的应用;最后,对MCR100-6晶闸管的…