【发布时间】:2014-02-15 00:30:02
【问题描述】:
我有两个记录器:
- root 和
- 测试1
如果我使用getlogger("test1"),它将使用test1,对吗?
使用getlogger(typeof(Program))时,会使用root吗?
【问题讨论】:
我有两个记录器:
如果我使用getlogger("test1"),它将使用test1,对吗?
使用getlogger(typeof(Program))时,会使用root吗?
【问题讨论】:
使用的记录器在您的 log4j.properties/log4j.xml 中定义,并且基于您的包的名称。
getLogger(name) 用于记录当前类的名称。
如果您输入“test1”作为参数,则调用的 log4j 日志行将包含“test1”。
【讨论】:
当您执行getLogger("test1") 时,它将使用名为 test1 的记录器。
当使用getLogger(class)时,它将检索已使用类名命名的记录器。
如果您尝试获取 root 记录器,请改用 getRootLogger()。
根据你的配置,你的类应该默认使用 root。见https://logging.apache.org/log4j/1.2/manual.html
“作为旁注,让我提一下,在 log4j 中,子记录器仅链接到它们现有的祖先。特别是,名为 com.foo.Bar 的记录器直接链接到根记录器,从而绕过未使用的 com 或 com .foo 记录器。这显着提高了性能并减少了 log4j 的内存占用。” - 来自手册
【讨论】: