Spring Boot 日志文件,你都会了吗?

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 Spring Boot 日志文件,你都会了吗?,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

1、日志文件的作用

2、日志的使用

2.1、从程序中得到日志对象

2.2、使用日志

2.3、日志格式

3、日志级别

3.1、这样的日志级别有什么用?

3.2、日志级别分类和使用

3.3、日志级别设置

4、日志持久化

5、更简单的日志输出——lombok

5.1、对比

5.2、lombok的实现原理

5.3、lombok更多的注解说明


1、日志文件的作用


  • 程序报错时可以发现并解决问题。
  • 记录用户登录日志,分析用户是否是正常登录。
  • 记录系统操作日志,方便数据恢复和定位操作人。
  • 记录程序执行时间,方便为以后优化程序提供数序支持。

2、日志的使用


2.1、从程序中得到日志对象

例如,在自定义类(假设类名为LogController)中,在程序中使需要使用日志工厂 LoggerFactory 先获取日志对象(日志在程序运行期间只加载一次,并且不可变,需要使用static和final),如下:

    //获取日志对象
    private static final Logger log = LoggerFactory.getLogger(LogController.class);

Ps:logger 对象是属于 org.slf4j 包下!

Spring Boot 日志文件,你都会了吗?

2.2、使用日志

日志打印的方式有很多种,例如使用 error 方法,如下:

    //打印日志
    private void printLog() {
        log.error("这是一个error");   
    }

执行效果如下: 

Spring Boot 日志文件,你都会了吗?

日志里面这些都表示什么意思呢?

接着往下看~

2.3、日志格式

Spring Boot 日志文件,你都会了吗?

3、日志级别


Spring Boot 日志文件,你都会了吗?

3.1、这样的日志级别有什么用?

  • 筛选出重要信息,例如在配置文件中设置级别为 warn ,那么你就只能看到warn以及比特级别更高的日志信息了(error、fatal)。
  • 控制不同环境下的日志信息,例如开发环境需要很详细的信息,而生产环境为了性能和安全性就会输入尽量少的日志。

3.2、日志级别分类和使用

日志级别从高到低,如下:

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

3.3、日志级别设置

日志输出的默认级别是 info ,如果想要手动配置,可以在配置配置文件中设置logging.level配置即可,如下:

logging:
    level:
     root: error

以上是对所有包下的日志级别有效(root也就是根目录),若想要设置指定某一包下的有效,就需要在level下加上路径(路径以java文件为起始位置),如下:

Spring Boot 日志文件,你都会了吗?

4、日志持久化


在生产环境下需要将日志信息保留下来,便于出现问题以后容易追溯问题,将日志保存下来这个活动叫做日志持久化。

如何进行日志持久化?我们只需要在配置文件中指定日志的存储目录或者是指定日志保存文件名即可,如下

指定日志的存储目录:

logging:
    file:
        path: D:\\test\\testDemo

指定日志文件的文件名:

logging:
    file:
        path: D:\\test\\testDemo\\spring-boot-2023.log

Ps:在没有指定文件名两次保存或者指定相同文件名进行两次保存的情况下,第二次保存的日志信息会追加到第一次保存的文件下,而不是覆盖掉上一此保存的日志信息。值得注意的是日志文件的大小一般都有上限(文件太大,有可能导致加载过慢),当然也可以自己手动设置文件大小的上限

5、更简单的日志输出——lombok


5.1、对比

如果不使用lombok,我们创建和使用日志对象需要如下步骤:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody //返回的使页面不是文本
public class LogController {

    //获取日志对象
    private static final Logger log = LoggerFactory.getLogger(LogController.class);

    //打印日志
    @RequestMapping("/hi")
    private void printLog() {
        log.error("这是一个error");
    }

}

如果使用lombok,我们创建和使用日志对象需要如下步骤:

a)首先需要添加如下依赖:

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

b)使用lombok:

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody
@Slf4j
public class LogEasyController {

    @RequestMapping("/hi/easy")
    private void printLog() {
        log.error("这是一个error");
    }

}

对比图:

Spring Boot 日志文件,你都会了吗?

5.2、lombok的实现原理

我们的Java程序在IDEA中执行完后,都会编译生成一个target文件,这个文件就是项目最终执行的代码(去掉注释等一系列工作后的文件),那么想要知道lombok的实现原理,就需要去观察这个文件~

Spring Boot 日志文件,你都会了吗?

Spring Boot 日志文件,你都会了吗? 

也就是说lombok的实现原理就是在编译阶段加上了我们原本需要的代码~

Java程序运行原理:

Spring Boot 日志文件,你都会了吗?

使用Lombok后的Java运行原理:

Spring Boot 日志文件,你都会了吗?

5.3、lombok更多的注解说明

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

Spring Boot 日志文件,你都会了吗?

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/129791.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!