在静态与非静态上下文中创建 SLF4J 记录器的开销是多少?
我一直使用以下模式来构造(SLF4J)记录器:
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
到目前为止,这已经奏效了,但是我想知道在某个时候的上下文,以及是否需要始终传入具体类文本,而不仅仅是使用非静态记录器,例如static
private final Logger log = LoggerFactory.getLogger(getClass());
这基本上已经被问到(和回答)之前在这里为LOG4J
和这里
我意识到基本上是强制性的,所以我想知道在非静态环境中使用SLF4J的开销到底有多高。final
Q:
使用是否有任何显著的实际开销
private final Logger log = LoggerFactory.getLogger(getClass());
多
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
在普通(网络)应用程序中?(无需在此处“讨论”高端,重负载Web应用程序)
请注意,我最终计划使用CDI使用更好的方法来获取SLF4J记录器,例如
@Inject private final Logger log;
正如这里描述的那样,http://www.seamframework.org/Weld/PortableExtensionsPackage#H-TtLoggerttInjection,但我需要首先了解记录器缓存。
子问题:甚至可以使用吗?
@Inject private static final Logger log;
(老实说,只是从CDI开始)