lombok的日志注解@Slf4j用法

以往写日志的时候,往往需要先声明一下,尽管这已经很简洁, 但如果有大量的类要做类似的操作, 还是略显重复。

往往还会带来其他问题:

1、声明麻烦又冗长,可能很难记住,甚至可能每次要用的时候都要去其它地方拷贝

2、不同的类要根据当前的类名自行调整那个 xxx.class 的值, 如果粗心大意的拷贝而忘记改动还可能带来一些潜在的问题

3、如果错误引入了 Logger 和 LoggerFactory 接口也会导致一些潜在的问题

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LogDemoController {

    // 自行声明
    private static final Logger log = LoggerFactory.getLogger((LogDemoController.class));

    //...
}

提高效率的话,可以使用lombok的@Slf4j注解

1、使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一

2、实现方式统一使用: Logback框架

 

使用前提:

需要引入 lombok,maven中增加相关依赖,IDEA也需要做些调整,安装相关插件,以及添加相关的日志依赖。

在类中要引入日志功能就只需要在类的上面添加@Slf4j注解即可。

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@RestController
public class DemoController {

	@GetMapping("/hello")
	public String hello() {
        //注入变量的缺省名字就是 log
		log.info("enter hello...");
		return "hello rest";
	}
}

 


打印日志的基本格式

必须使用参数化信息的方式

logger.debug("Processing trade with id:[{}] and symbol : [{}] ", id, symbol);

对于debug日志,必须判断是否为debug级别后,才进行使用

if (logger.isDebugEnabled()) {
    logger.debug("Processing trade with id: " +id + " symbol: " + symbol);
}

不要进行字符串拼接,那样会产生很多String对象,占用空间,影响性能。

反例(不要这么做)

logger.debug("Processing trade with id: " + id + " symbol: " + symbol);

使用[]进行参数变量隔离

如有参数变量,应该写成如下写法(这样的格式写法,可读性更好,对于排查问题更有帮助)

logger.debug("Processing trade with id:[{}] and symbol : [{}] ", id, symbol);

整合参考文章:

日志打印的正确姿势

使用 lombok @Slf4j 注解简化日志功能的引入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值