【SpringBoot】讲清楚日志文件&&lombok

这篇具有很好参考价值的文章主要介绍了【SpringBoot】讲清楚日志文件&&lombok。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、日志是什么?

⽇志是程序的重要组成部分,想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗?
答案是否定的,写程序不是买彩票,不能完全靠猜,因此⽇志对于我们来说,最主要的⽤途就是排除和定位问题。
#除了发现和定位问题之外,我们还可以通过⽇志实现以下功能:
1.记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。
2.记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。
3.记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持。
4.以上这些都是⽇志提供的⾮常实⽤的功能

二、⽇志怎么⽤?

Spring Boot 项⽬在启动的时候默认就有⽇志输出,如下图所示
【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端
这个就是我们说的日志,说明日志在springboot里是内置好的,那么我们应该怎么怎么自定义打印日志呢

三.自定义打印日志

3.1在程序中得到日志对象

在程序中获取⽇志对象需要使⽤⽇志⼯⼚ LoggerFactory,如下代码所示

代码如下(示例):

// 1.得到⽇志对象
private static Logger logger = LoggerFactory.getLogger(UserController.class
);

⽇志⼯⼚需要将每个类的类型传递进去,这样我们才知道⽇志的归属类,才能更⽅便、更直观的定位到问题类
【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端
【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端

3.2使用日志打印对象

⽇志对象的打印⽅法有很多种,我们可以先使⽤ info() ⽅法来输出⽇志,如下代码所示
【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端

package com.example.demo.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LogController {

    // 1.得到日志对象
    private static Logger log =
            LoggerFactory.getLogger(TestController.class);

    @RequestMapping("/log")
    public void log() {
        String msg = "今天已经周二了。";
        log.trace("trace -> " + msg);
        log.debug("debug -> " + msg);
        log.info("info -> " + msg);
        log.warn("warn -> " + msg);
        log.error("error -> " + msg);
    }

}

package com.example.demo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDateTime;

//@Controller
//@ResponseBody
@RestController
@PropertySource(value = "classpath:application.properties",
        encoding = "utf-8")
public class TestController {

    @Value("${myimage.path}")
    private String myImage;

    @RequestMapping("/sayhi")
    public String sayHi() {
        System.out.println(LocalDateTime.now() +" 日志 " +
                "com.example.demo.controller.TestController");
        return "你好,Spring Boot -> " + myImage;
    }
}


四.⽇志级别

4.1日志级别有什么用

1.⽇志级别可以帮你筛选出重要的信息,⽐如设置⽇志级别为 error,那么就可以只看程序的报错⽇志了,对于普通的调试⽇志和业务⽇志就可以忽略了,从⽽节省开发者信息筛选的时间。
2.⽇志级别可以控制不同环境下,⼀个程序是否需要打印⽇志,如开发环境我们需要很详细的信息,⽽⽣产环境为了保证性能和安全性就会输⼊尽量少的⽇志,⽽通过⽇志的级别就可以实现此需求。

4.2 ⽇志级别的分类与使⽤

⽇志的级别分为:
trace:微量,少许的意思,级别最低;
debug:需要调试时候的关键信息打印;
info:普通的打印信息(默认⽇志级别);
warn:警告,不影响使⽤,但需要注意的问题;
error:错误信息,级别较⾼的错误⽇志信息;
fatal:致命的,因为代码异常导致程序退出执⾏的事件;
【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端

五.日志持久化

【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端
可以和我这样子配置
【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端
是在application.yml里写的,记得要俩个斜扛,一个是转义的

六.lombok

6.1添加lobok依赖

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<optional>true</optional>
</dependency>

注意:使⽤ @Slf4j 注解,在程序中使⽤ log 对象即可输⼊⽇志,并且只能使⽤ log 对象才能输出, 这是 lombok 提供的对象名

6.2lombok原理

lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录,如下
【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端

【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端
【SpringBoot】讲清楚日志文件&&lombok,Spring,spring boot,java,spring,后端

6.3lombok 更多注解说明

注解 作⽤
@Getter ⾃动添加 getter ⽅法
@Setter ⾃动添加 setter ⽅法
@ToString ⾃动添加 toString ⽅法
@EqualsAndHashCode ⾃动添加 equals 和 hashCode ⽅法
@NoArgsConstructor ⾃动添加⽆参构造⽅法
@AllArgsConstructor ⾃动添加全属性构造⽅法,顺序按照属性的定义顺序
@NonNull 属性不能为 null
@RequiredArgsConstructor ⾃动添加必需属性的构造⽅法,
final +@NonNull 的属性为必需

注解 作⽤
@Data @Getter + @Setter + @ToString +
@EqualsAndHashCode +
@RequiredArgsConstructor +
@NoArgsConstructor
⽇志注解
@Slf4j 添加⼀个名为 log 的⽇志,使⽤ slf4j

总结

今天的博客,希望大佬们能在评论指出错误!~~😘😘文章来源地址https://www.toymoban.com/news/detail-754195.html

到了这里,关于【SpringBoot】讲清楚日志文件&&lombok的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot日志文件

    目录 前言🍭 一、日志的作用🍭 1、日志真实使用案例:🍉 二、日志怎么用🍭 1、自定义日志打印🍉 Ⅰ、在程序中得到日志对象🍓  常见的日志框架说明(了解)🍒 Ⅱ、使用日志对象打印日志 🍓 2、日志的级别🍉 Ⅰ、日志级别有什么用?🍓 Ⅱ、日志级别的分类与使用

    2024年01月18日
    浏览(38)
  • Spring Boot 配置文件和日志

    目录 配置文件格式 properties配置文件说明 1.properties基本语法 2.读取配置文件 3.properties缺点 yml配置文件说明 1.yml基本语法 2.配置不同数据类型 3.字符串特殊情况 4.配置对象 properties和yml对比 日志 日志的使用 日志级别 日志持久化 Lombok Lombok原理解释 Spring中配置文件有很重要的

    2024年01月19日
    浏览(51)
  • Spring Boot配置保存日志文件

    springboot日志配置: springboot默认日志是打印再console中的,不会保存在文件中。我们项目上线肯定要保存日志用于分析的。 一、使用xml配置日志保存(并不需要pom配置slf4j依赖,starter里面已经配置了依赖了) 1、在项目的resources目录下创建一个【logback-spring.xml】日志配置文件

    2024年02月11日
    浏览(38)
  • 【Spring Boot学习二】日志文件

    目录 🌷1、自定义输出日志 🌷 2、日志级别 2.1 日志级别分类(6种) 2.2 配置日志级别(在.yml文件中设置:) (1)设置日志整体级别 (2)分目录设置日志级别 🌷3、日志怎么持久化 3.1 设置日志文件名和路径(.yml文件下配置)  3.2 对日志分割:每隔多少M分割 🌷4、更简单的

    2024年02月16日
    浏览(45)
  • 【JavaEE】Spring Boot - 日志文件

    【JavaEE】Spring Boot 开发要点总结(3) 写代码不是概率事件,bug的出现必然是有原因的,而日志的主要作用就是,排查和定位问题! 而日志的生成就是随着程序的进行和一步步生成的,不说全部过程都记录得清清楚楚,至少重要的点和环节或者一些异常情况都有记录 而通过日

    2024年02月14日
    浏览(46)
  • Spring Boot配置文件及日志信息

    目录 前言: Spring Boot优点 配置文件 配置文件格式 读取配置文件 properties配置文件格式 properties优缺点分析 yml配置文件格式(另一种标记语言) yml优缺点分析 Spring Boot 不同平台配置文件规则 日志信息 日志的功能 Spring Boot内置日志框架 使用日志 得到日志对象 打印日志 日志

    2024年02月01日
    浏览(56)
  • 【Spring Boot学习】日志文件,Spring Boot也会写日记了,这些事你知道嘛 ? ? ?

    前言: 大家好,我是 良辰丫 ,在上一篇文章中我们已经学习了Spring Boot的配置,接下来我们要学习一些日志相关的东西,什么是日志呢?我们慢慢往下看.💌💌💌 🧑个人主页:良辰针不戳 📖所属专栏:javaEE进阶篇之框架学习 🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些

    2024年02月08日
    浏览(41)
  • Java实战:Spring Boot实现AOP记录操作日志

    本文将详细介绍如何在Spring Boot应用程序中使用Aspect Oriented Programming(AOP)来实现记录操作日志的功能。我们将探讨Spring Boot集成AOP的基本概念,以及如何使用Spring Boot实现AOP记录操作日志。最后,我们将通过一个具体示例来演示整个实现过程。本文适合已经具备Spring Boot基础

    2024年02月22日
    浏览(48)
  • 从零开始 Spring Boot 38:Lombok 与依赖注入

    图源:简书 (jianshu.com) 在之前的文章中,我详细介绍了 Lombok 的用法,考虑到在 Spring 中使用依赖注入(DI)是如此的频繁,因此有必要讨论使用 Lombok 时可能对依赖注入造成的影响。 我们都知道,Spring 中的依赖注入分为三种情况: 通过属性进行依赖注入。 通过构造器进行依

    2024年02月08日
    浏览(63)
  • 【Spring框架全系列】SpringBoot配置日志文件

    🍧🍧哈喽,大家好,我是小浪。那么上篇博客我们学习了SpringBoot配置文件的相关操作,本篇博客我们将学习一个新的知识点,SpringBoot日志文件。🖥🖥 📲目录 一、日志是什么,有什么作用? 二、如何看到日志文件? 三、如何自定义日志打印 1、在程序中得到⽇志对象 2、使

    2024年02月03日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包