0
是java.util.logging.Logger.log()是一个责任模式链吗?如果是这样,log方法调用如何获得下一个调用的链接?java.util.logging.Logger.log()是责任模式链吗?
是java.util.logging.Logger.log()是一个责任模式链吗?如果是这样,log方法调用如何获得下一个调用的链接?java.util.logging.Logger.log()是责任模式链吗?
下面是相关code:
// Post the LogRecord to all our Handlers, and then to
// our parents' handlers, all the way up the tree.
Logger logger = this;
while (logger != null) {
Handler targets[] = logger.getHandlers();
//...
if (!logger.getUseParentHandlers()) {
break;
}
logger = logger.getParent();
}
}
正如你可以看到每个日志记录传递到分配给一个给定的记录,每Handler
,如果useParentHandlers
是true
,同样的算法应用于父所有到顶端的方式。
所以基本上这是一个责任链模式,其中链中的每个元素都可以处理请求的一部分。
这段代码是java.util.logging.Logger类的一部分吗? – BOSS
是的,我已经提供[this](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/logging/Logger.java#Logger。 log(java.util.logging.LogRecord))链接(请参阅'log(LogRecord)'方法),它在Sun JDK中看起来相同。 –