Let's say I have a logger tree like: R R.P R.P.C1 R.P.C1.L1 R.P.C2.L2 R.P.C2 R.P.C2.L1 R.P.C2.L2
and I want to set R.P.C2 and all it's descendants to a given level. In Log4j 1.2, I do: public static void setChildren(final Logger parentLogger, final Level newLevel) { final Enumeration<Logger> enumeration = LogManager.getCurrentLoggers(); while (enumeration.hasMoreElements()) { final Logger logger = enumeration.nextElement(); if (LoggerUtils.isChild(parentLogger, logger)) { logger.setLevel(newLevel); } } } private static boolean isChild(final Logger parentCandidate, final Logger childCandidate) { for (Category c = childCandidate; c != null; c = c.getParent()) { if (c.equals(parentCandidate)) { return true; } } return false; } I suppose I could determine parent/child with a startWith on the logger name too. I there a better way to do this with the Core in v2 aside from iterating over all loggers in a context and doing a kind of isChild()? Can additivity be used for this? I'd like to add such a utility method to Configurator. Gary -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory