关于SLF4j日志

在添加了spring-boot-starter的项目中,已经包含了SLF4j日志的相关依赖项。

在添加了lombok的项目中,可以在类上添加@Slf4j注解,则lombok框架会在编译期在类中声明名为log的变量,通过此变量可以调用输出日志的方法。

在SLF4j中,日志的可显示级别,根据日志内容从不重要(或可不关注)到重要(或必须关注)依次为:

  • trace:跟踪信息
  • debug:调试信息
  • info:一般信息
  • warn:警告信息
  • error:错误信息

通过log变量,可以调用以上5个级别名称对应的方法,以输出对应级别的日志,例如:

@Test
void test() {
    log.trace("输出了一条【trace】日志");
    log.debug("输出了一条【debug】日志");
    log.info("输出了一条【info】日志");
    log.warn("输出了一条【warn】日志");
    log.error("输出了一条【error】日志");
}

在Spring Boot项目中,默认的日志显示级别为info,所以,在默认情况下,只会显示info或更加重要的日志!

在Spring Boot项目中,在配置文件中,可以通过在配置文件中的 logging.level.根包名[.类名]=显示级别 来配置显示级别!例如,在application.properties中添加配置:

# 日志的显示级别
logging.level.cn.tedu.csmall=trace

输出日志的各级别的方法都是被重载过的,通常,当输出日志时需要输出相关的变量值时,推荐使用参数列表为 (String msg, Object... args) 的方法,例如:

int x = 1;
int y = 2;
System.out.println("x = " + x + ", y = " + y + ", x + y = " + (x + y));
log.trace("x = {}, y = {}, x + y = {}", x, y, x + y);

以上做法中,是在需要输出的字符串中使用{}作为占位符,表示某个变量的值,然后,从第2个参数开始,依次传入各占位符对应的值。

使用这种做法,可以避免字符串的拼接,无论是编写代码,还是阅读代码,体验都会更好!并且,使用这种做法时,由于第1个参数(字符串)是常量,是不变的,不存在字符串的拼接,所以,执行效率也远高于传统的输出语句!

需要注意,在测试类中,测试类必须添加@SpringBootTest注解,才会识别application.properties中的配置,并且,如果没有添加此注解,日志的默认显示级别是debug

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值