java 使用@Slf4j注解进行日志记录

lhcgjxsq  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(142)

首先,我将简要介绍一下场景。在我的应用程序中,我使用SLF4J作为日志外观。对于日志记录,我使用Log4j2,并且我也有自己定制的log4j2.xml。当我登录我的类时,我创建了一个日志记录器,如下所述:

private static final Logger LOG = LogManager.getLogger(TestController.class);

后来,我发现有一个@Slf4j注解,然后我可以在不手动创建日志记录器示例的情况下进行日志记录。

log.info("Info log in getHello() in TestController");

我做了一个小的研究,关于使用@Slf4j annotation的缺点,而不是在类中创建一个日志记录器示例。我没有遇到任何不应该使用@Slf4j annotation的理由。
然而,在继续之前,我想问问这个社区是否有使用@Slf4j的缺点?

0pizxfdo

0pizxfdo1#

documentation of @Log and friends
...
@Slf4j
创建private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
...
我们看到这相当于

private static final Logger LOG = LogManager.getLogger(TestController.class);

除了字段的名称之外。

9wbgstp7

9wbgstp72#

@Sl4j

上面来自lombork的注解创建了一个基于Sl4j的Logger,但是你需要一个基于Log4j的logger。所以不要觉得你可以使用基于Sl4j的logger。
如果你打算使用基于Sl4j的logger,lombork会在compile阶段修改代码并创建代码,而不是像cglib那样在运行时或使用反射。这意味着性能不会有任何下降。

相关问题