Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的应用程序中有一些网络服务,我想根据网络服务名称将它们记录到不同的文件中。为此,我正在创建记录器
myLogger = Logger.getLogger(logKey);
我想知道是否应该缓存这些记录器以避免为每次调用创建它们,或者我可以忽略开销。
log4j 已经使用默认的日志存储库 ( Hierarchy) 缓存了记录器。换句话说,它只是一个哈希表查找。
Hierarchy
但是,根据我的经验,您倾向于使记录器成为静态的,因此无论如何它只会在每个类中被调用一次。
此方法 Logger.getLogger(logKey) 在记录器缓存中查找具有在 logKey 中传递的名称的记录器。如果它不存在,它会创建一个。第一次调用记录器名称,将创建一个记录器,但稍后调用将从缓存中获取它,因此您无需在代码中处理它。