阿里《Java开发手册》中的 1 个bug!(下)

扩展篇


我们在 Spring Boot 中使用日志通常会这样写:


private final Logger log = LoggerFactory.getLogger(LogPrint.class);


并且每个类中都要写这样一行代码,未免有些麻烦。


此时我们可以使用 @Slf4j 注解来替代上面的那行 Logger 对象创建的代码,完整使用示例如下:


import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;

@Slf4j
class LogTest {
    @Test
    void show() {
        log.debug("Hello, {}.", "Debug");
        log.info("Hello, {}.", "Info");
        log.error("Hello, {}.", "Error");
    }
}


程序的执行结果:


14:33:18.377 [main] DEBUG com.example.demo.LogTestTest - Hello, Debug.

14:33:18.382 [main] INFO com.example.demo.LogTestTest - Hello, Info.

14:33:18.382 [main] ERROR com.example.demo.LogTestTest - Hello, Error.


从上述结果可以看出,日志已经正常输出到控制台了。


注意:@Slf4j 注解属于 lombok,因此要想在项目中使用 @Slf4j 注解,需要保证项目中已经添加了 lombok 的依赖。


总结


在进行日志输出时,字符串变量之间的拼接要使用占位符的方式,因为这样写会比较优雅。我们查了 slf4j 的源码发现,占位符的底层也是通过 StringBuilder 拼接来实现的。


上一篇:Tomcat使用线程池配置高并发连接


下一篇:ArcEngine开发之Command控件使用篇