On Sat, Aug 15, 2015 at 3:56 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> On Sat, Aug 15, 2015 at 3:07 PM, Ralph Goers <ralph.go...@dslextreme.com> > wrote: > >> Why do you want to set the level on the LoggerConfig and all its >> descendants? >> > > Because I clearly did not educate myself fully in this topic. ;-) Hence I > am looking for a shortcut by asking on the ML :-) > > >> Setting the level just on the LoggerConfig will achieve the same thing, >> so long as none of its descendants has a LoggerConfig >> > > That's cool, but... How can I know if any descendant has a LoggerConfig? > How can do this generically? > Here is my proposal (including a test): https://issues.apache.org/jira/secure/attachment/12751400/log4j.diff I am not crazy about the API name: setChildren(String loggerName, Level level). Thoughts? Gary > Gary > > >> >> Sent from my iPad >> >> On Aug 15, 2015, at 8:25 AM, Gary Gregory <garydgreg...@gmail.com> wrote: >> >> 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 >> >> > > > -- > 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 > -- 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