LoggerFactory.getLogger(ClassName.class) vs LoggerFactory.getLogger(this.getClass().getName())
我正在努力提高我在Java中的优化技能。为了实现这一目标,我有一个我制作的旧程序,我正在尽我所能让它变得更好。在这个程序中,我使用SL4J进行日志记录。为了获得记录器,我做了:
private static final Logger logger = LoggerFactory.getLogger(this.getClass().getName());
在我编写代码时,我认为这是最好的选择,因为我删除了对类名的引用(可能会被重构)。但现在我不再那么肯定了...
private static final Logger logger = LoggerFactory.getLogger(ClassName.class);
另一方面,保留对类名的引用,但会删除一个方法调用。对于一个类来说,这可能不是一个很大的性能改进,但是当你有很多类时,这可能是一些东西。
所以我的问题是:
哪种方法更好?使用类名还是通过反射获取它?
请用利弊来激励你的答案。谢谢。