gpt4 book ai didi

java - LoggerFactory.getLogger(ClassName.class) 与 LoggerFactory.getLogger(this.getClass().getName())

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:14 26 4
gpt4 key购买 nike

我正在努力提高我的 Java 优化技能。为了实现这一目标,我制作了一个旧程序,我正在尽最大努力让它变得更好。在这个程序中,我使用 SL4J 进行日志记录。为了获得记录器,我做了:

private static final Logger logger = LoggerFactory.getLogger(this.getClass().getName());

在我编写代码时,我认为这是最好的选择,因为我删除了对类名的引用(可能会被重构)。但现在我不再那么确定了......

private static final Logger logger = LoggerFactory.getLogger(ClassName.class);

另一方面,保留对类名的引用,但它删除了一个方法调用。对于一个类(class)来说,这可能不会带来很大的性能提升,但是当你有很多类(class)时,这可能会有所帮助。

所以我的问题是:

哪种方法更好?使用类名还是通过反射获取?

请用正反两方面来激励你的回答。谢谢。

最佳答案

迟到!

因为我将来可能会搜索这个。

有一种方法可以通过使用 Java 7 的 MethodHandles 类来创建复制/粘贴友好的 Logger 实例(假设这几乎不是做某事的好理由!)。

private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());

关于java - LoggerFactory.getLogger(ClassName.class) 与 LoggerFactory.getLogger(this.getClass().getName()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com