首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java SLF4J分级执行

Java SLF4J分级执行
EN

Stack Overflow用户
提问于 2017-03-28 11:52:53
回答 1查看 55关注 0票数 0

有没有办法从一个特定的儿子那里执行所有的日志记录?

例如,

代码语言:javascript
复制
-Parent
    -Son
       -Son2
  1. 执行Son.log("message")将执行子日志和父日志。
  2. 执行Son2.log("message")将执行Son2、子日志和父日志。

这就是密码:

代码语言:javascript
复制
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.

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-04 06:20:34

这不是它的工作方式。SLF4J Logger层次结构不能以您想要的方式使用(也不应该使用)。

基本上,对于每个记录器,如果不定义任何设置,则将从父程序复制设置。在您的层次结构中,日志记录级别设置为DEFAULT表示parent,没有为parent.son定义任何内容。因此,parent.son的日志记录级别也将是DEBUG。因此,所有级别高于或等于DEBUG的日志都将记录为parent.son。如果您将子程序的日志级别设置为TRACE,那么这将优先于父级的调试级别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43068845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档