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>

Reply via email to