当前位置:首页 > 运营 > 正文

SpringBoot日志文件

1. 日志的作用

日志是程序的重要组成部分,在程序报错的时候,如果我们不看日志,是很难排查出错误的,除非你真的是很有经验.所以日志最主要的作用就是 排除和定位问题.

日志提供的功能:

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

在我们启动 SpringBoot 项目的时候就会输出日志:

SpringBoot日志文件  第1张3. 自定义日志打印

主要分两个步骤:

在一个类中先获得打印日志对象(日志框架提供的日志对象,而日志框架默认已经集成到 SpringBoot 里了)使用日志对象提供的方法实现日志的打印3.1 得到日志对象

得到日志对象 Logger ,它来自于 slf4j ,不要导错了包,在程序中获取⽇志对象需要使⽤⽇志⼯⼚ LoggerFactory

SpringBoot日志文件  第2张3.2 使用日志对象提供的方法打印日志

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@ResponseBodypublic class UserController { //1. 先得到日志对象(来自 slf4j) private static final Logger log = LoggerFactory.getLogger(UserController.class); //设置当前的类型 @RequestMapping("/sayhi") public void sayHi(){ //2. 使用日志对象提供的打印方法进行日志打印 log.trace("我是 trace"); log.debug("我是 debug"); log.info("我是 info"); log.warn("我是 warn"); log.error("我是 error"); }}SpringBoot日志文件  第3张

之前的 info 级别日志就没打印了.

注意: 当存在局部日志级别和全局的日志级别设置时,那么当访问局部日志时,使用的是局部日志级别.也就是 局部日志优先级 > 全局日志级别

5. 日志持久化

以上的⽇志都是输出在控制台上的,然⽽在⽣产环境上咱们需要将⽇志保存下来,以便出现问题之后追溯问题,把⽇志保存下来的过程就叫做持久化。

日志持久化(将日志永久的保存到磁盘的某个位置)

1: 在配置文件中设置日志保存的路径,当设置了保存路劲之后,那么日志就会自动进行持久化

2: 在配置文件中设置日志保存的名称,日志会自动进行持久化

#设置日志保存的目录 写法一logging.file.path=D:log

# 设置日志保存的目录写法二logging.file.path=D:/logSpringBoot日志文件  第4张SpringBoot日志文件  第5张

# 设置日志的保存名称logging.file.name=D:logspring-boot.logSpringBoot日志文件  第6张6. 更简单的实现自定义日志的打印6.1 准备工作,添加 lombok 到项目中

如果你当初没有添加 lombok 又不想重开项目,有这样一种办法,下载插件 EditStarters :

SpringBoot日志文件  第7张SpringBoot日志文件  第8张SpringBoot日志文件  第9张6.2 使用 @Slf4j 得到日志对象SpringBoot日志文件  第10张

看 .class 文件,他是给我们转换了的:

SpringBoot日志文件  第11张6.4 lombok 更多注解说明

注解

作用

@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

取消
扫码支持 支付码