作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以执行来自特定儿子的层次结构中的每个日志吗?
例如:
-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]调试logger.son-Hello world。
期望的输出:
14:15:25.180 [main]调试parent.son-世界你好。
14:15:25.180 [main] 调试父级 - Hello world。
谢谢。
最佳答案
事情不是这样的。 SLF4J Logger 层次结构不能(也不应该)按照您想要的方式使用。
基本上,对于每个记录器,如果您没有定义任何设置,则将从父记录器复制设置。在您的层次结构中,parent
的日志记录级别设置为 DEFAULT
,并且没有为 parent.son
定义任何内容。因此 parent.son
的日志记录级别也将为 DEBUG
。因此,所有级别高于或等于 DEBUG
的日志都将为 parent.son
记录。如果您将子进程的日志级别设置为 TRACE
,那么该级别将优先于父进程的 DEBUG 级别。
关于Java SLF4J 层次结构执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43068845/
我是一名优秀的程序员,十分优秀!