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

Reply via email to