12

我的应用程序中有一些网络服务,我想根据网络服务名称将它们记录到不同的文件中。为此,我正在创建记录器

myLogger = Logger.getLogger(logKey);

我想知道是否应该缓存这些记录器以避免为每次调用创建它们,或者我可以忽略开销。

4

2 回答 2

23

log4j 已经使用默认的日志存储库 ( Hierarchy) 缓存了记录器。换句话说,它只是一个哈希表查找。

但是,根据我的经验,您倾向于使记录器成为静态的,因此无论如何它只会在每个类中被调用一次。

于 2009-04-21T08:49:40.047 回答
9

此方法 Logger.getLogger(logKey) 在记录器缓存中查找具有在 logKey 中传递的名称的记录器。如果它不存在,它会创建一个。第一次调用记录器名称,将创建一个记录器,但稍后调用将从缓存中获取它,因此您无需在代码中处理它。

于 2009-04-21T09:04:26.220 回答