代码之家  ›  专栏  ›  技术社区  ›  Nuno Furtado

创建Log4j记录器的开销是多少

  •  12
  • Nuno Furtado  · 技术社区  · 17 年前

    我的应用程序中有一些Web服务,我想根据Web服务名称将它们记录到不同的文件中。为此,我创建了伐木工人

    myLogger = Logger.getLogger(logKey);
    

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

    2 回复  |  直到 17 年前
        1
  •  23
  •   Jon Skeet    17 年前

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

    然而,以我的经验,你 倾向 使记录器成为静态的,因此每个类只调用一次记录器。

        2
  •  9
  •   Bhushan Bhangale    17 年前

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