有没有办法从特定的儿子执行层次结构中的每个日志?
例如:
-Parent
-Son
-Son2
这就是代码:
public class HelloWorld {
public static void main(String[] args) {
Logger parent = LoggerFactory.getLogger("parent");
((ch.qos.logback.classic.Logger) parent).setLevel(Level.DEBUG);
Logger son= LoggerFactory.getLogger("parent.son");
son.debug("hello");
}
}
输出:
14:15:25.180 [main] DEBUG logger.son- Hello world.
期望的输出:
14:15:25.180 [main] DEBUG parent.son- Hello world.
14:15:25.180 [main] DEBUG parent- Hello world.
感谢。
答案 0 :(得分:1)
这不是它的工作原理。 SLF4J Logger层次结构不能以您希望的方式使用(也不应该)。
基本上,对于每个记录器,如果您没有定义任何设置,则将从父级复制设置。在您的层次结构中,DEFAULT
的日志记录级别设置为parent
,并且没有为parent.son
定义任何内容。因此,parent.son
的日志记录级别也将为DEBUG
。因此,DEBUG
将记录级别高于或等于parent.son
的所有日志。如果您为儿子设置日志级别为TRACE
,那么这将优先于父级的DEBUG级别。