You can modify the existing LoggerConfig. The value gets copied to the Loggers when updateLoggers is called.
Ralph > On Aug 22, 2015, at 12:00 AM, Remko Popma <remko.po...@gmail.com> wrote: > > Should this modify an existing LoggerConfig (that is installed and in use) > while logging is taking place, or should one clone the existing > Configuration, make the required changes and then swap the old Configuration > for the new? > > Remko > Sent from my iPhone > >> On 2015/08/22, at 13:53, Ralph Goers <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> wrote: >>> >>>> On Wed, Aug 19, 2015 at 7:59 PM, Gary Gregory <garydgreg...@gmail.com> >>>> wrote: >>>>> 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? >>> >>> Anyone? Bueller? :-) >>> >>>> >>>> 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 >>>>>>> JUnit in Action, Second Edition >>>>>>> Spring Batch in Action >>>>>>> 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 >>>>> JUnit in Action, Second Edition >>>>> Spring Batch in Action >>>>> 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 >>>> JUnit in Action, Second Edition >>>> Spring Batch in Action >>>> 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 >>> JUnit in Action, Second Edition >>> Spring Batch in Action >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory >>