Вот соответствующий код :
// 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
, тот же алгоритм применяется к родителю вплоть до самого верха.
Таким образом, по сути, это шаблон цепочки ответственности, где каждый элемент в цепочке может обрабатывать часть запроса.