SpringBoot日志文件

文章目录:一.日志的作用

                     二.日志的使用(1)系统默认日志输出

                                               (2)自定义日志输出

                    三.日志级别的分类   (1)默认级别

                                                       (2)自定义级别

                     四.日志的持久化    (1)指定日志存储目录

                                                       (2)指定日志保存文件名

                       五.更简单的方式的日志输出(1)添加lombok依赖

                                                                       (2)类外添加@Slf4j

                                                                          (3)Lombok原理解释

                       

一.SpringBoot的日志的作用:

(1)如果程序出现bug,通过日志,可以更好的定位和排查问题

   (2)  记录用户登录日志,可用户分析是否是正常用户还是恶意破解用户

 (3) 记录系统操作日志,可以更好地恢复数据和定位操作人

  (4) 记录程序执行的时间,为优化数据提供支持

二.日志的使用

SpringBoot项目内置了框架,项目启动时就会默认日志输出

 我们如何自定义日志呢?

首先呢?我们先通过Logger类来获取日志对象

 private static final Logger log=LoggerFactory.getLogger(Hello.class)

把这个对象设置为final就防止类外这个对象被修改了

然后我们通过log这个对象来调用各种打印方法

@RestController
@ResponseBody
public class Hello {
    private static final Logger log=LoggerFactory.getLogger(Hello.class);
    
    @PostConstruct
    public void doPostConstruct() {
        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warn");
        log.error("erro");


    }
}

 我们发现trace、degug并没有打印,这是为什么呢?这里就涉及到日志级别问题了

三.日志级别的分类:

1.trace  :微量,少许的意思,级别最低

2.debug:调试的时候打印关键信息

3.info: 普通的打印信息(默认日志级别)

4.warn: 打印警告信息

5.error: 打印错误信息

6.fatal: 致命错误,代码异常导致程序退出执行

日志级别的顺序:

打印日志的时候只会打印当前日志级别及以上的信息,我们默认的是Info级别,所以上文中打印的时候就不会打印 trace和debug了。

那么我们可不可以设置日志级别呢?其实是可以的

我们可以在配置文件里设置日志级别:

logging:
  level:
    root: warn

当我们设置为warn的时候 我们再来看一下日志的打印信息

我们看到只能打印warn和error了 

 而且日志级别的设置可以具体到包:

logging:
  level:
    root: warn
    com.example.demo:
      controller: trace
      text: info

这里表示com.example.demo包底下的子包controller里面的类日志级别为trace、com.example.demo包底下的子包trext里面的类的级别设置为text

四.日志持久化:我们看到以上的信息都是输出在控制台上,在生产环境上我们需要把它长久下的保存下来 。

想要日志持久化:我们需要在配置文件里指定日志的存储目录或指定日志保存文件名

(1)指定日志的存储目录

 当我们运行这个项目后我们会发现生成一个spring文件

 里面就存放着具体的日志信息

 (2)指定日志保存文件名

logging:
  level:
    root: warn
    com.example.demo:
      controller: trace
      text: info
  file:
    path: D://123//student//
    name: D://123//student//spring-boot.log

 五.更简单的日志输出:

1.添加lombok依赖

2.类外添加@Slf4j

 3.Lombok原理解释

我们找到target文件

 我们发现字节码文件里多了一行

这说明代码在编译的时候Lombok把log对象的声明放进了代码中

Lombok作用如下图:


 

 我们再来看一下Lombok的一些其他注解

@Getter
@Setter
@ToString
@AllArgsConstructor
public class Student {
    public String name;
    public int age;
}

即使我们再类里面没有写getter、setter、toString()、构造方法

我们再打开对应的字节码 文件看一下

 我们发现类里面对这些方法都有声明。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

又一次503 service unavailable处理

出现了:503 service unavailable 1)查看系统日志 通过事件查看器,查看iis的日志,如下: 在错误信息中提示是 应用程序池提供服务的进程中出现错误。 其他警告也可通过日志目录查看 C:\inetpub\ 出现上述问题的可能是&#xf…

Node第三方包 【Request】

文章目录 🌟前言🌟Request🌟安装与使用🌟流(stream)操作🌟Form表单🌟application/x-www-form-urlencoded (URL编码的Form)🌟multipart/form-data (Multipart Form 上传) …

http协议(一)/应用层

学习目标:⭐理解应用层的作用,理解协议,理解序列化和反序列化,并且实现网络版计算器⭐HTTP协议。⭐手写一个简单的http协议。 应用层 我们写的一个个解决实际问题, 满足我们日常需求的网络程序, 都是在应用层。 协议/序列化与反…

ChatGPT原理剖析

文章目录 ChatGPT常见误解1. 罐头回应2. 网络搜寻重组 ChatGPT真正做的事——文字接龙ChatGPT背后的关键技术——预训练(Pre-train)一般机器是怎样学习的? ChatGPT带来的研究问题1. 如何精准提出需求2. 如何更改错误3. 侦测AI生成的物件4. 不…

十、v-model的基本使用

一、v-model的基本使用 表单提交是开发中非常常见的功能,也是和用户交互的重要手段: 比如用户在登录、注册时需要提交账号密码;比如用户在检索、创建、更新信息时,需要提交一些数据; 这些都要求我们可以在代码逻辑中…

系统分析师《企业信息化战略与实施》高频知识点

企业信息化战略与实施---企业信息化与电子商务 业务流程重组(Business Process Reengineering BPR)是针对企业业务流程的基本问题进行反思,并对它进行彻底的重新设计,使业绩取得显著性提高。与目标管理、全面质量管理、战略管理等…

输入捕获实验

实验内容 用TIM5 的通道 1(PA0)来做输入捕获,捕获 PA0 上高电平的脉宽(用 WK_UP 按键输入高电平),通过串口打印高电平脉宽时间。 输入捕获简介 输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的…

快速搭建Electron+Vite3+Vue3+TypeScript5脚手架 (无需梯子,快速安装Electron)

一、介绍 😆 😁 😉 Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需…

宝塔面板搭建自己的网站,并发布公网远程访问

文章目录 1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4.固定http地址5. 配置二级子域名6.创建一个测试页面 宝塔面板简单几步搭建本地web站点,并做内网穿透,实现公网用户也可以正常远程访问,无需公网IP,无需设置路由器。 1. 环…

Volatile系列(一):Volatile测试案例一可见性

系列文章 Volatile测试案例一可见性 目录 前言 测试1 逻辑 代码 结果 测试2 逻辑 代码 结果 结论 原理探讨(可见性) 前言 多线程是 JAVA 并发编程的主要应用,并发环境能大幅提高应用性能,提高 CPU 使用率&#xff0c…

优雅的接口防刷处理方案

前言 本文为描述通过Interceptor以及Redis实现接口访问防刷Demo 这里会通过逐步找问题,逐步去完善的形式展示 原理 通过ip地址uri拼接用以作为访问者访问接口区分 通过在Interceptor中拦截请求,从Redis中统计用户访问接口次数从而达到接口防刷目的 …

不应使用Excel进行项目资源规划的 7 个原因

项目资源规划早期仅限于基本分配和调度。因此,企业使用自制工具或excel表来执行这一简单功能。然而,随着技术和业务流程的发展,资源规划变得复杂,并包括其他组成部分,如预测和容量规划,优化等。 由于传统…

掌握好这几款TikTok数据分析工具,让你轻松提高曝光率!

为什么别人在TikTok发的普普通通的视频却有那么高的流量、几天内疯狂涨粉,而自己想破脑袋装饰自己的视频,结果却不如人意。 其实原因很简单,TikTok不像国内的抖音只面向中华民族,而是覆盖了150多个国家和75种语言用户&#xff0c…

【通信接口】UART、IIC、SPI

目录 一、预备知识 1、串行与并行 2、单工与双工 3、波特率 二、UART 三、IIC 四、SPI (一对一、一对多) 五、IIC、SPI异同点 参考文章:这些单片机接口,一定要熟悉:UART、I2C、SPI、TTL、RS232、RS422、RS485…

【Java EE初阶】计算机简介及多线程之创建线程

目录 1.计算机发展史 2.冯诺依曼体系 3.操作系统 操作系统的作用: 4.进程 1.PID(进程编号) 2.内存指针 应用程序申请到的内存中的首地址 3.文件描述符表 问:什么是并发?什么是并行? 4.进程的优先级&a…

卡尔曼滤波原理及代码

目录 一.简介 二.原理 1.先验估计原理 2.后验估计原理 3.总结 三.示例 一.简介 卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法,它可以在任意…

StarRocks 3.0 集群安装手册

本文介绍如何以二进制安装包方式手动部署最新版 StarRocks 3.0集群。 什么是 StarRocks StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以…

同步辐射X射线断层扫描成像在各行业的应用

同步辐射X射线断层扫描成像在各行业的应用 同步辐射X射线断层扫描成像(synchrotron radiation X-ray computed tomography,SRCT)是一种非侵入式、高分辨率的成像技术,利用同步辐射光束产生的高强度、高亮度、单色性和相干性的X射线…

【面试】MySQL事务的12连问

文章目录 前言1. 什么是数据库事务?2. 事务的四大特性3. 事务的隔离级别有哪些?MySQL的默认隔离级别是什么?4. Mysql为什么选择RR作为默认隔离级别?5. 很多大厂为什么选择RC数据库隔离级别?6. 并发场景,数据…

Qt连接MySql数据库(本地和远程数据库均可)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 三种方法方法一 略方法二 使用ODBC设置mysql为数据源库1. 添加ODBC数据源,在控制面板中找到管理工具,其中有ODBC数据源 64位的,打…
最新文章