Spring Boot 日志学习和lombok的更多使用

文章介绍了日志在程序中的重要性,包括用于问题排查、用户行为记录等。讨论了日志的种类、自定义日志的实现方式,以及如何在SpringBoot中设置日志级别和持久化。此外,还提到了Lombok的@Slf4j注解在简化日志编写方面的应用。
摘要由CSDN通过智能技术生成

本篇进行日志的学习以及lombok的更多使用


日志的使用

日志有什么用?

日志是程序的重要组成部分。日志对于我们来说,最主要的用途就是排除和定位问题。

除了发现和定位问题之外,我们还可以通过日志实现以下功能:

  1. 记录⽤户登录日志,方便分析⽤户是正常登录还是恶意破解用户。
  2. 记录系统的操作日志,方便数据恢复和定位操作人。
  3. 记录程序的执行时间,方便为以后优化程序提供数据⽀持。

以上这些都是日志提供的非常实用的功能。

日志的种类:

  1. 记录错误日志和警告日志(发现和定位问题)
  2. 记录用户日志
  3. 系统日志
  4. 程序执行日志

日志怎么用

首先:
Spring Boot 内置了日志框架(不然也输出不了日志)。
默认情况下,输出的日志并非是开发者定义和打印的,那开发者怎么在程序中自定义打印日志呢?
日志默认是打印在控制台上的,而控制台的日志是不能被保存的,那么怎么把日志永久的保存下来呢?

自定义日志

开发者⾃定义打印⽇志的实现步骤:

  1. 在程序中得到⽇志对象。
  2. 使⽤⽇志对象的相关语法输出要打印的内容

日志门面(Logging Facade)->commons-logging和SLF4J(由SLF4J决定使用下面哪个框架)
日志实现-> log4j 1/2 JUL logback

实现自定义的日志打印

Spring Boot 日志打印:

  1. 得到日志对象
  2. 使用日志对象提供的方法打印日志

日志属于类而不是属于方法所有写到类中,而一个日志对应一个类,所有使用private,为了可以在方法中直接调用,使用static,不修改使用final,在选择时,选择slf4j

在这里插入图片描述
示例代码:

//1.得到日志对象
    private static final Logger log = LoggerFactory.getLogger(TestController.class);
     public void doPostConstruct(){//在方法中打印
        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warn");
        log.error("error");
    }

查看结果:
在这里插入图片描述

默认的显示INFO级别以上的,以下的不显示

日志级别

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

日志级别的分类和使用

日志的级别分为:
trace:微量,少许的意思,级别最低;
debug:需要调试时候的关键信息打印;
info:普通的打印信息(默认日志级别);
warn:警告,不影响使用,但需要注意的问题;
error:错误信息,级别较⾼的错误日志信息;
fatal:致命的,因为代码异常导致程序退出执行的事件。

越往上接收到的消息就越少,如设置了 warn 就只能收到 warn、error、fatal 级别的⽇志了。

日志级别的设置

日志级别配置只需要在配置文件中设置“logging.level”配置项即可

#日志级别配置
logging:
  level:
    root: error
    com:#日志精细化
      example:
        demo: trace

spring boot日志持久化

日志都是输出在控制台上的,然而在生产环境上咱们需要将日志保存下来,以便出现问题之后追溯问题,把日志保存下来的过程就叫做持久化。
想要将日志进行持久化,只需要在配置文件中指定日志的存储目录或者是指定日志保存文件名之后。

Spring Boot 就会将控制台的日志写到相应的目录或文件下了。

  1. 设置日志的保存路径
    配置日志文件的保存路径:
#日志保存路径(1.不要将保存的日志保存在c盘。2。路径不要出现中文和空格)
logging:
  file:
    path: D:\\JAVA\\
  1. 会在文件夹内创建一个spring.log的文件
    结论:日志文件一旦产生,那么日志文件及其内容就会永久的保存,不会出现文件或内容的丢失,无论任何操作都会保持其以上特性

  2. 配置日志文件的文件名:

#可以直接设置位置以及日志名字
logging:
  file:
    name: D:\\JAVA\\springboot.log

生产级别日志分类:
1.程序运行日志(存放在文件中)
2.业务日志(存放在数据库)

在日志增多,springboot会自动进行分割,当一个日志文件超过10mb以后,会自动创建一个新的日志文件用来存储

更加的简单实现日志-lombok

  1. 添加 lombok 依赖
    这里可以直接使用插件EditStarters来进行添加

  2. 使用注解

@Slf4j//给当前类中添加一个叫做log的日志对象(就是SLF4J里面提供Logger)

更加简单的实现

log.info("log的 info");
        log.error("log的 error");

lombok的更多学习

lombok是编译时期运行的,在运行是注释转化为字节码进行运行。在我们查看字节码文件时并没有发现lomok的注解,而是在编译期间进行了转化。

Lombok更多注解说明

基本注解:
在这里插入图片描述
组合注解:

在这里插入图片描述

日志注解:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值