Spring Boot(二)日志和lombok

概论

⽇志有什么⽤?
发现和定位问题之外,我们还可以通过⽇志实现以下功能:

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

以上这些都是⽇志提供的⾮常实⽤的功能。

在这里插入图片描述

自定义日志打印

那么如何自定义日志?
开发者⾃定义打印⽇志的实现步骤:

  • 在程序中得到⽇志对象。(日志工程得到日志对象)
  • 使⽤⽇志对象的相关语法输出要打印的内容(通过日志对象提供的打印方法实现打印)

日志级别

  • ⽇志级别可以帮你筛选出重要的信息。
  • ⽇志级别可以控制不同环境下,⼀个程序是否需要打印⽇志,如开发环境我们需要很详细的信息,⽽⽣产环境为了保证性能和安全性就会输⼊尽量少的⽇志,⽽通过⽇志的级别就可以实现此需求。

⽇志级别的分类:

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

在这里插入图片描述
如何设置日志级别:
⽇志级别配置只需要在配置⽂件中设置“logging.level”配置项即可。

#设置日志级别
logging.level.root=error

在这里插入图片描述
在这里插入图片描述
系统对日志进行了筛选。将业务不需要的日志级别进行屏蔽。
好处多多。日志级别可以在众多日志中快速找到对应的消息。从而进行针对性处理。

根据目录设置目录级别。

#给Controller 文件夹单独日志级别
logging.level.com.example.demo.controller=debug

在这里插入图片描述
在这里插入图片描述

为什么Spring Boot可以打印日志?

因为Spring Boot 内置了两个日志框架:SLF4J(让开发者使用和调用的框架)+LogBack(底层实现日志相关操作的框架)

在程序中得到⽇志对象
在这里插入图片描述
在这里插入图片描述
Logger系统提供的API接口,log模式,调用系统的API进行自定义。

@RestController
public class LogController {
    //得到日志对象
    private static Logger log= LoggerFactory.getLogger(LogController.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);
    }
}

在这里插入图片描述
在这里插入图片描述

日志的持久化(保存)

将日志保存到文件或磁盘。
做法:
1.设置日志保存路径
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.设置日志保存文件名

在这里插入图片描述
在这里插入图片描述

细节:
logging会有存储大小的限制10M,超过这个值会截断然后从新起一个文件保存。

lombok

装lombok的插件(重要)
在这里插入图片描述
在这里插入图片描述

Lombok的使用

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

无需去写set和get方法

@Getter
@Setter
public class student {
    private int id;
    private String name;
    private String password;

    public static void main(String[] args) {
        student student=new student();
        student.setId(1);
        int i= student.getId();
        System.out.println(i);
    }
}

在这里插入图片描述
@Getter+@Setter+@ToString+…=@Data

注解作⽤
@Data@Getter + @Setter + @ToString +@EqualsAndHashCode +@RequiredArgsConstructor +@NoArgsConstructor

在这里插入图片描述

注解作⽤
@Slf4j添加⼀个名为 log 的⽇志,使⽤ slf4j

在这里插入图片描述

lombok的实现原理

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值