记录器应该是最终的和静态的吗?

时间:2011-09-06 18:23:21

标签: java logging static final

可以从许多线程访问类。在这种情况下必须是记录器也是最终的和静态的吗? 感谢。

3 个答案:

答案 0 :(得分:29)

所有主要的Java日志包(java.util.logginglog4j等)都是同步的并且是线程安全的。即使从多个线程调用类,每个类的private final static记录器的标准模式也很好。

答案 1 :(得分:4)

是的,记录器应该是静态的和最终的。也最好是私人的。每个类只需要一个记录器实例,除非您要动态更改日志首选项,否则最好将其设置为最终。

记录器是线程安全的,您不必担心线程。

答案 2 :(得分:2)

使记录器最终和/或静态不会以任何方式影响使用记录器的线程安全性。如果从多个线程使用记录器实例,而不是确保使用线程安全记录器。

通常,记录器应该是私有静态final,但不要认为这使它成为线程安全的。最常见的日志记录框架是线程安全的,所以如果你使用其中一个,你应该很好。