java.util.logging.Logger.log()是一个责任链模式吗?

时间:2011-07-01 09:02:48

标签: java design-patterns

java.util.logging.Logger.log()是一个责任链模式吗?如果是这样,log方法调用如何被链接到下一个调用?

1 个答案:

答案 0 :(得分:2)

以下是相关的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,如果useParentHandlerstrue,则相同的算法将一直应用于父级到顶部。

所以基本上这是一个责任链模式,链中的每个元素都可以处理一部分请求。