In what cases? You should only need to create a LoggerConfig if you want an exact match on the parent and there isn’t one already.
Ralph > On Aug 21, 2015, at 10:37 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > > I think that's how I wrote the first implementation, but that does not work > for all cases because you need to create a LoggerConfig in some cases. IIRC I > changed the impl once I started writing the unit tests. > > Gary > > On Fri, Aug 21, 2015 at 9:53 PM, Ralph Goers <ralph.go...@dslextreme.com > <mailto:ralph.go...@dslextreme.com>> wrote: > That is definitely not how to implement it. > > You should get the LoggerConfig that matches your parent logger and call > setLevel on that. Then loop through all the loggerConfigs that start with the > located LoggerConfigs name and then call setLevel on them. You typically > aren’t going to have many LoggerConfigs while you could have thousands of > Loggers, which all resolve to the same LoggerConfig. > > Ralph > >> On Aug 21, 2015, at 9:30 PM, Gary Gregory <garydgreg...@gmail.com >> <mailto:garydgreg...@gmail.com>> wrote: >> >> On Wed, Aug 19, 2015 at 7:59 PM, Gary Gregory <garydgreg...@gmail.com >> <mailto:garydgreg...@gmail.com>> wrote: >> On Sat, Aug 15, 2015 at 3:56 PM, Gary Gregory <garydgreg...@gmail.com >> <mailto:garydgreg...@gmail.com>> wrote: >> On Sat, Aug 15, 2015 at 3:07 PM, Ralph Goers <ralph.go...@dslextreme.com >> <mailto: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 >> <https://issues.apache.org/jira/secure/attachment/12751400/log4j.diff> >> >> I am not crazy about the API name: setChildren(String loggerName, Level >> level). >> >> Thoughts? >> >> Anyone? Bueller? :-) >> >> >> Gary >> >> >> Gary >> >> >> Sent from my iPad >> >> On Aug 15, 2015, at 8:25 AM, Gary Gregory <garydgreg...@gmail.com >> <mailto: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 <mailto:garydgreg...@gmail.com> | >>> ggreg...@apache.org <mailto: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 <http://garygregory.wordpress.com/> >>> Home: http://garygregory.com/ <http://garygregory.com/> >>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | >> ggreg...@apache.org <mailto: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 <http://garygregory.wordpress.com/> >> Home: http://garygregory.com/ <http://garygregory.com/> >> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | >> ggreg...@apache.org <mailto: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 <http://garygregory.wordpress.com/> >> Home: http://garygregory.com/ <http://garygregory.com/> >> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> >> >> >> -- >> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | >> ggreg...@apache.org <mailto: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 <http://garygregory.wordpress.com/> >> Home: http://garygregory.com/ <http://garygregory.com/> >> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> > > > > -- > E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | > ggreg...@apache.org <mailto: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 <http://garygregory.wordpress.com/> > Home: http://garygregory.com/ <http://garygregory.com/> > Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>