使用getlogger时要使用哪个记录器?

时间:2014-02-14 14:34:20

标签: java log4j log4net

我有两个记录器:

  1. root和
  2. TEST1
  3. 如果我使用getlogger("test1"),它将使用test1,是吗?

    使用getlogger(typeof(Program))时,是否会使用root?

2 个答案:

答案 0 :(得分:0)

使用的记录器在log4j.properties/log4j.xml中定义,并且基于包的名称。

getLogger(name)用于记录当前类的名称。

如果输入“test1”作为参数,则调用的log4j日志行将包含“test1”。

答案 1 :(得分:0)

执行getLogger("test1")时,它将使用名为test1的记录器。

使用getLogger(class)时,它将检索使用类名命名的记录器。

如果您尝试获取root logger,请改用getRootLogger()

有关详情,请参阅http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Logger.html#getLogger%28java.lang.String%29

默认情况下,您的类应使用root,具体取决于您的配置。见https://logging.apache.org/log4j/1.2/manual.html

“作为旁注,请注意,在log4j中,子记录器仅链接到它们现有的祖先。特别是,名为com.foo.Bar的记录器直接链接到根记录器,从而绕过未使用的com或com .foo记录器。这显着提高了性能并减少了log4j的内存占用。“ - 来自手册