工作用——log工具slf4j及其Logger getLogger


前言

本文对slf4j,以及对slf4j在工作中的实现进行简要说明


一、slf4j是什么?

slf4j全称Simple logging facade for Java,它是日志框架、日志接口,可以采用其具体的实现类(Logger类以及LoggerFactory类)去完成日志的打印。

二、slf4j的实现

第一步:通过LoggerFactory类用来获取Logger对象

private static final Logger LOGGER = LoggerFactory.getLogger(xxx.class);

代码说明如下

1、getLogger()方法的入参是当前类(xxx)的字节码对象,这样才能在打印日志信息时显示为由当前类打印。

2、为什么用private修饰?
答:因为LOGGER对象只能在当前类中使用,避免其他类调用(存在一种情况:大量的类中的日志都是上述写法,连对象名LOGGER都一样,所以采用private可以有效避免其他类调用)。

3、为什么用static定义?
答:用static定义,在xxx类被加载时,LOGGER作为静态对象,只会在创建一次且唯一,可避免重复;但如果是非静态对象,其他类引用xxx类时,LOGGER对象会再次创建,会造成内存浪费。

4、为什么用final?
答:因为final可以避免LOGGER对象被修改,尤其是如果xxx.class字节码信息被修改,会导致,打印日志出现紊乱,与类不一致。

第二步:Logger类用来打印日志

LOGGER.debug("debug日志");
LOGGER.infor("infor日志");
LOGGER.warn("warn日志");
LOGGER.error("error日志");

代码说明如下

1、LOGGER.debug、LOGGER.info、LOGGER.warn、LOGGER.error这几个的区别
答:日志级别不同,error -> warn -> info -> debug,每个级别能输出当前及以上级别的信息,debug会输出info warn error 的信息,但是error不会输出debug info warn的信息。

2、SLF4J支持{}作为占位符,param作为参数可在打印时显示,不需要进行字符串拼接提升了开发效率。

LOGGER.infor("infor日志:{}",param);

三、补充说明

项目中的日志级别设置 logging.level.root=info

1、当前项目中的日志级别设置为info级别,debug日志不打印,打印info warn error级别的日志

2、项目中日志级别设置在properties配置文件中

后续敬请期待。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值