Spring Boot日志文件

在这里插入图片描述

文章目录

  • 🧊1.日志有什么作用
  • 🧊2.认识日志
  • 🧊3.自定义打印日志
    • 🥝3.1得到日志对象
    • 🥝3.2利用日志对象的方法打印日志
    • 🥝3.3日志格式说明
  • 🧊4.日志级别
    • 🥝4.1 认识日志级别
    • 🥝4.2日志级别作用
  • 🧊5. 日志持久化
  • 🧊6.更简单的日志输出-Lombok
    • 🥝6.1 添加lombok依赖
    • 🥝6.2 使用Lombok输出日志
    • 🥝6.3解释lombok运行原理

🧊1.日志有什么作用

日志可以记录各种信息,包括错误信息、警告信息、调试信息、访问记录等等。一般来说,日志还可以记录时间戳、执行的函数、运行时参数、异常信息、程序执行路径等相关信息,便于开发人员进行问题排查和系统优化。

🧊2.认识日志

日志是指程序或系统在运行过程中所产生的记录信息,通常用于跟踪和调试应用程序、系统故障分析、性能评估和监控等
在这里插入图片描述
以上就是Spring Boot的日志内容
默认日志都是info级别的
Spring Boort内置了日志框架
默认情况下日志不是 自定义打印的
但是当程序员想要自定义打印也有办法

🧊3.自定义打印日志

自定义打印日志分为两步
1.得到日志对象
2…使用日志对象的方法打印日志

🥝3.1得到日志对象

要使用LoggerFactory,日志工厂,Logger 对象是属于 org.slf4j 包下的
在这里插入图片描述

🥝3.2利用日志对象的方法打印日志

在这里插入图片描述
完整代码

package com.example.demo;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** Created with IntelliJ IDEA.* Description:* User: WHY* Date: 2023-08-02* Time: 16:35*/
@RestController
public class UserController2 {public static Logger logger= LoggerFactory.getLogger(UserController2.class);@RequestMapping("/user2")public void  sayHi(){logger.trace("热");logger.debug("烈");logger.info("的");logger.warn("不");logger.error("是");}
}

运行结果
在这里插入图片描述
看到了由info及info以后的日志,因为项目默认级别就是按照info开始打印的
那么开发人员可以设定从哪个日志开始打印(在application.test-properties文件下设置,因为我们用的端口就是测试环境下的端口号)

在这里插入图片描述
也可以指定某个文件的日志打印级别
在这里插入图片描述

在这里插入图片描述

🥝3.3日志格式说明

在这里插入图片描述

🧊4.日志级别

🥝4.1 认识日志级别

日志级别由低到高:
trace
debug
info
warn
error
fatal

🥝4.2日志级别作用

日志级别是指日志的重要性或严重程度。日志级别的作用是帮助开发人员或运维人员快速定位和解决问题,以便更好地维护和管理应用程序或系统。不同的日志级别表示不同的日志信息

日志作用
trace微量,少许的意思,级别最低
debug用于开发人员在调试过程中输出详细的日志信息
info用于输出正常运行信息。
warn用于输出警告信息,表明应用程序或系统出现了一些潜在的问题。
error用于输出错误信息,表明应用程序或系统发生了错误,但不影响系统运行。
–fatal-于输出严重错误信息,表明应用程序或系统发生了无法恢复的错误,需要立即处理。-

🧊5. 日志持久化

当项目在运行的时候我们可以发现日志存在,但是当项目关闭,日志就没有了,所以我们要保存日志以文件的形式保存在文件中,有两个做法
1.设置日志的保存路径(还是写在application-test.properties中)
在这里插入图片描述
运行
在这里插入图片描述
上面显示大小为0kb,真的是这样吗?,我们打开看看
在这里插入图片描述
可以看到上面显示了项目中的日志
多次运行项目观察
在这里插入图片描述

可以看到日志的保存不是覆盖保存的, 每一次的运行都会被记录下
2.设置文件保存名
在这里插入图片描述
这样写会在项目下生成一个日志文件
在这里插入图片描述

在这里插入图片描述
我们也可以加上存储路径
在这里插入图片描述

🧊6.更简单的日志输出-Lombok

每次都使⽤ LoggerFactory.getLogger 很麻烦,这⾥讲⼀
种更好⽤的⽇志输出⽅式,使⽤ lombok 来更简单的输出

🥝6.1 添加lombok依赖

idea应用商店搜素lombok下载
在这里插入图片描述
然后添加lombok依赖
在这里插入图片描述

🥝6.2 使用Lombok输出日志

package com.example.demo;import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** Created with IntelliJ IDEA.* Description:* User: WHY* Date: 2023-08-02* Time: 17:44*/
@RestController
@Slf4j//有了这个注解,就可以直接log对象了
public class UserController3 {@RequestMapping("/user3")public void say(){log.info("happy");}
}

在这里插入图片描述
lombok可以提供@Getter,@Setter,@Tostring注解,不用再自己写getter,setter,tostring方法了,还有一个注解是这三个的组合注解,@Data
在这里插入图片描述

在这里插入图片描述

🥝6.3解释lombok运行原理

说到lombok的运行原理,我们就要说到Java代码的编译和运行了
写好的代码经过编译变成了.class文件,然后到jvm加载运行

在这里插入图片描述

有了lombok,就变成
在这里插入图片描述

在代码编译期间把lombok注解变成相应的代码,不影响最后的运行

好了,今天的讲解就到这里,我们下期再见,886!

在这里插入图片描述

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

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

相关文章

super父类 事物

一个没有事物的方法。 调用他的父类里有事物的方法。 无论this 和 super 都会让父类事物方法没有事物。 如果写了super.class 文件里面,就是super调用。 如果没写,就是this调用,坑爹 测试,把父类注入,事物才生效。

Javaweb学习(2)

Javaweb学习 一、Maven1.1 Maven概述1.2 Maven简介1.3、Maven基本使用1.4、IDEA配置Maven1.6、依赖管理&依赖范围 二、MyBatis2.1 MyBatis简介2.2 Mybatis快速入门2.3、解决SQL映射文件的警告提示2.4、Mapper代理开发 三、MyBaits核心配置文件四、 配置文件的增删改查4.1 M…

python爬虫2:requests库-原理

python爬虫2:requests库-原理 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 目录结构 文章目录 python爬虫2:requests库-原理1. 概述2. re…

解决Error running XXXApplicationCommand line is too long.报错

测试IDEA版本:2019.2.4 ,2020.1.3 文章目录 一. 问题场景二. 报错原因2.1 为什么命令行过长会导致这种问题? 三. 解决方案3.1 方案一3.2 方案二 一. 问题场景 当我们从GitHub或公司自己搭建的git仓库上拉取项目代码时,会出现以下错误 报错代…

以技术驱动反欺诈,Riskified 为企业出海保驾护航

如今,全球对于线上消费的需求日益增长,各类新型支付方式也层出不穷。在国内,线上支付有着较为完善的法律及监管条例,格局基本已定型。但对于出海商家而言,由于不同国家和地区的支付规则和监管机制不同,跨境…

实现 Notification 通知

如图这种效果 可以使用 Notification API来进行实现 代码如下 注意&#xff1a;一定要用服务端打开。不然不会弹出来。vscode可以安装 live Serve 插件服务端打开 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8">…

Mac强制停止应用

有时候使用Mac的时候&#xff0c;某个应用卡住了&#xff0c;但是肯定不能因为一个应用卡住了&#xff0c; 就将电脑重启吧&#xff0c;所以只需要单独停止该应用即可&#xff0c;使用快捷键optioncommandesc就会出现强制停止的界面&#xff0c;选择所要停止的应用&#xff0c;…

【css】属性选择器

有些场景中需要在相同元素中获取具有特定属性的元素&#xff0c;比如同为input&#xff0c;type属性有text、button&#xff0c;可以通过属性选择器设置text和button的不同样式。 代码&#xff1a; <style> input[typetext] {width: 150px;display: block;margin-bottom…

64 # 实现一个 http-server

准备工作 上一节实现了通过 commander 的配置获取到用户的参数&#xff0c;下面完成借用 promise 写成类的方法一节没有完成的任务&#xff0c;实现一个 http-server&#xff0c;https://www.npmjs.com/package/http-server&#xff0c;http-server 是一个简单的零配置命令行静…

【每日一题】—— B. Maximum Rounding(Codeforces Round 891 (Div. 3))

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

opencv基础-34 图像平滑处理-2D 卷积 cv2.filter2D()

2D卷积是一种图像处理和计算机视觉中常用的操作&#xff0c;用于在图像上应用滤波器或卷积核&#xff0c;从而对图像进行特征提取、平滑处理或边缘检测等操作。 在2D卷积中&#xff0c;图像和卷积核都是二维的矩阵或数组。卷积操作将卷积核在图像上滑动&#xff0c;对每个局部区…

【图像去噪】基于混合自适应(EM 自适应)实现自适应图像去噪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

怎么加密文件夹才更安全?安全文件夹加密软件推荐

文件夹加密可以让其中数据更加安全&#xff0c;但并非所有加密方式都能够提高极高的安全强度。那么&#xff0c;怎么加密文件夹才更安全呢&#xff1f;下面我们就来了解一下那些安全的文件夹加密软件。 文件夹加密超级大师 如果要评选最安全的文件夹加密软件&#xff0c;那么文…

ATFX汇市:美联储年内或仍将加息依次,美指向下空间不大

环球汇市行情摘要—— 昨日&#xff0c;美元指数上涨0.08%&#xff0c;收盘在102.08点&#xff0c; 欧元贬值0.07%&#xff0c;收盘价1.1003点&#xff1b; 日元贬值0.51%&#xff0c;收盘价142.47点&#xff1b; 英镑升值0.28%&#xff0c;收盘价1.2784点&#xff1b; 瑞…

模拟实现消息队列项目(系列7) -- 实现BrokerServer

目录 前言 1. 创建BrokerServer类 1.1 启动服务器 1.2 停止服务器 1.3 处理一个客户端的连接 1.3.1 解析请求得到Request对象 1.3.2 根据请求计算响应 1.3.3 将响应写回给客户端 1.3.4 遍历Session的哈希表,把断开的Socket对象的键值对进行删除 2. 处理订阅消息请求详解(补充) …

学习pytorch

学习pytorch 1. 环境安装配置镜像源conda命令记录遇到的问题1. torch.cuda.is_available() False 1. 环境安装 B站小土堆视频 配置镜像源 conda config --show channels conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainhttp://www.m…

FastAPI 构建 API 高性能的 web 框架(一)

如果要部署一些大模型一般langchainfastapi&#xff0c;或者fastchat&#xff0c; 先大概了解一下fastapi,本篇主要就是贴几个实际例子。 官方文档地址&#xff1a; https://fastapi.tiangolo.com/zh/ 1 案例1:复旦MOSS大模型fastapi接口服务 来源&#xff1a;大语言模型工程…

【产品设计】消息通知系统设计

消息通知可以将内容实时送达用户手机页面&#xff0c;但是泛滥的消息通知会引起用户的反感&#xff0c;也违背了这个设计的初衷。 消息通知可以及时地将状态、内容的更新触达到用户&#xff0c;用户则可以根据收到的消息做后续判断。但是如果没有及时将重要消息触达到用户或者滥…

图像预处理——CV

目录 1.图像预处理 1.1 图像显示与存储原理 1.2 图像增强的目标 1.3 点运算&#xff1a;基于直方图的对比度增强 1.4 形态学处理 1.5 空间域处理&#xff1a;卷积 1.6 卷积的应用&#xff08;平滑、边缘检测、锐化等&#xff09; 1.7 频率域处理&#xff1a;傅里叶变换…

stm32 cubemx ps2无线(有线)手柄

文章目录 前言一、cubemx配置二、代码1.引入库bsp_hal_ps2.cbsp_hal_ps2.h 2.主函数 前言 本文讲解使用cubemx配置PS2手柄实现对手柄的按键和模拟值的读取。 很简单&#xff0c;库已经封装好了&#xff0c;直接就可以了。 文件 一、cubemx配置 这个很简单&#xff0c;不需要…