我的应用程序中有一些web服务,我想根据webservice名称将它们记录到不同的文件中。为此我用
创建记录器myLogger = Logger.getLogger(logKey);
我想知道我是否应该缓存这些记录器以避免为每次调用创建它们,或者我可以忽略开销。
答案 0 :(得分:23)
log4j已使用默认日志存储库(Hierarchy
)缓存记录器。换句话说,它只是一个哈希表查找。
但是,根据我的经验,你倾向于使记录器保持静态,所以它最终只会被每个类调用一次。
答案 1 :(得分:9)
此方法Logger.getLogger(logKey)在logger缓存中查找具有在logKey中传递的名称的记录器。如果它不存在则创建一个。首先调用记录器名称,将创建一个Logger,但稍后的调用将从缓存中获取,因此您不需要处理 这在您的代码中。