【实习见闻2】日志输出和@Slf4j

之前自己单独写项目的时候习惯上面写一个@Slf4j,下面就直接log.info输出日志来debug,而且没问题就不打日志,有问题打完日志也不删。这是一个不好的习惯。

日志级别介绍及为什么要日志级别分离

简而言之就是

TRACE < DEBUG < INFO < WARN < ERROR 

当你设定越高的层级,就会展现出越多层级的信息,log 量也会飞快的飙升。现在接触的项目最常用的三种输出分别是debug、info、error,分别用于调试、输出重要信息、报错

开始的时候无脑打info日志,自己本机小项目调试调试没问题,但如果是正式环境里分分钟几十万甚至几亿qps下去,马上就能用日志文件把服务器磁盘挤爆了……

所以规范化日志输出,正式环境就别打debug了,循环输出普通信息也别打,多看看日志文件多排除排除bug,就会知道日志文件应该咋写了。

@Slf4j 是啥

@Slf4j 用起来很爽,配好环境之后直接一个注释打上去,然后就可以直接 log.info 输出了,同时“ {} ” 占位符的拼接使得输出日志非常简便,至少不用自己一个个打“+”,甚至专门为了日志输出去写一个tostring方法。

那@Slf4j本质是啥呢?

Causes lombok to generate a logger field.
Complete documentation is found at the project lombok features page for lombok log annotations .
Example:
  @Slf4j
  public class LogExample {
  }
  
will generate:
  public class LogExample {
      private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
  }
  
This annotation is valid for classes and enumerations.

Ctrl点进去能看到官方给的示例,简而言之就是帮忙造一个名为log的Logger。

那进一步呢?

@Slf4j 本身采用了外观设计模式,作用是隐藏掉具体日志实现的细节,提供一个统一的入口(直接一个注释加一行代码打日志可太香了)

本身并不提供日志服务功能,得通过slf4j-simple、logback、slf4j-log4j12来或直接或间接地实现。如果在网上看了半吊子教程直接在自己本机小项目只引用一个slf4j的依赖,就会直接报错加载不了类。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值