【问题标题】:Problem with loggers hierarchy记录器层次结构的问题
【发布时间】:2010-02-01 10:03:00
【问题描述】:

我正在尝试在我的应用程序中创建记录器层次结构。 (我正在使用标准的 java 记录器) 为此,我首先通过简单地调用创建所有记录器的“祖父”:(在静态块中) Logger.getLogger("myapplication"); 然后,每个具体的记录器都要求记录器: Logger.getLogger("myapplication.package1.Main"); 我创造了他的父亲: Logger.getLogger("myapplication.package2");

现在,我正在使用 JConsole 来使用 RMX 更改日志记录级别。 当我为 myapplication.package1.Main 调用 getLoggerParentName 时,我得到了 myapplication.package1,而对于 myapplication.package1,我得到了 myapplication。

但是设置myapplication的logger级别并不会影响child的级别。 (虽然设置 myapplication.package1 级别确实会影响 Main 的 logger 级别)。

怎么会?我错过了什么吗? 就我研究 Logger 类而言,我认为这应该可以工作......

【问题讨论】:

  • 这是公共日志记录、Log4j 还是什么 API?
  • 标准 Java 日志记录:如第一行所述。

标签: java logging


【解决方案1】:

每个记录器都有自己的关联级别。如果级别设置为“null”,则表示“从父 logger 继承此 logger 的级别”。

如果子记录器被赋予非空级别,则它不会从其父记录器继承级别更改。

myapplication.package1 是否明确设置了级别? 如果为每个记录器打印 getLevel() 的结果会发生什么?

【讨论】:

  • 当我使用 JConsole 调用 getLevel 时,我得到空字符串。 (我认为这意味着空)..
猜你喜欢
  • 2013-05-09
  • 2010-09-10
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 2019-12-28
  • 1970-01-01
  • 2017-08-29
相关资源
最近更新 更多