No. Autocorrect at work.  Should have been “Sounds”

Ralph

> On Aug 27, 2015, at 12:24 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> 
> Pardon my lack of urban engagement ;-) but do you mean "Spuds" as in 
> http://www.urbandictionary.com/define.php?term=Spud+Me 
> <http://www.urbandictionary.com/define.php?term=Spud+Me> 
> 
> Gary
> 
> On Thu, Aug 27, 2015 at 12:07 PM, Ralph Goers <ralph.go...@dslextreme.com 
> <mailto:ralph.go...@dslextreme.com>> wrote:
> Spuds ok to me
> 
> Sent from my iPad
> 
> On Aug 27, 2015, at 11:49 AM, Gary Gregory <garydgreg...@gmail.com 
> <mailto:garydgreg...@gmail.com>> wrote:
> 
>> setAllChildLevels is nice and explicit, but like setChildren it does not 
>> convey the fact that the API sets the _given_ level _and_ its children.
>> 
>> Maybe setAllLevels(String, Level) ?
>> 
>> Gary
>> 
>> On Thu, Aug 27, 2015 at 11:24 AM, Ralph Goers <ralph.go...@dslextreme.com 
>> <mailto:ralph.go...@dslextreme.com>> wrote:
>> setBranch doesn’t resonate with me.  Partly the problem is that you don’t 
>> identify what is being set in the name.  I would actually prefer something 
>> like setAllChildLevels.
>> 
>> Ralph
>> 
>>> On Aug 27, 2015, at 11:17 AM, Gary Gregory <garydgreg...@gmail.com 
>>> <mailto:garydgreg...@gmail.com>> wrote:
>>> 
>>> Ohhh, I like setBranch instead of setChildren. I'll let it simmer for a 
>>> little...
>>> 
>>> Thoughts from others?
>>> 
>>> Gary
>>> 
>>> 
>>> 
>>> On Thu, Aug 27, 2015 at 7:15 AM, Xen <x...@dds.nl <mailto:x...@dds.nl>> 
>>> wrote:
>>> Maybe you can call it setBranch() instead, since you are really trying to 
>>> set an entire branch of a tree, and you are no so much worried about the 
>>> fact that they are children. In other words, the parent is included too.
>>> 
>>> 
>>> 
>>> On Wed, 26 Aug 2015, Gary Gregory wrote:
>>> 
>>> On Sat, Aug 22, 2015 at 1:58 PM, Gary Gregory <garydgreg...@gmail.com 
>>> <mailto:garydgreg...@gmail.com>>
>>> wrote:
>>> 
>>> In this case the caller is setChildren, so it would know. I've not
>>> experimented with coding this yet though.
>>> 
>>> 
>>> A reminder that this new code has been in for a couple of days and that I
>>> am not in love with the API name setChildren, so I am open to suggestions.
>>> 
>>> Gary
>>> 
>>> 
>>> Gary
>>> 
>>> On Sat, Aug 22, 2015 at 11:10 AM, Ralph Goers <ralph.go...@dslextreme.com 
>>> <mailto:ralph.go...@dslextreme.com>>
>>> wrote:
>>> 
>>> Yes. Except that puts the burden on the caller to keep track of
>>> everything they modified.
>>> 
>>> Ralph
>>> 
>>> On Aug 22, 2015, at 9:33 AM, Gary Gregory <garydgreg...@gmail.com 
>>> <mailto:garydgreg...@gmail.com>> wrote:
>>> 
>>> Furthermore could loggerContext.updateLoggers() be optimized by passing
>>> it the the list of LoggerConfigs we modifed?
>>> 
>>> Gary
>>> 
>>> On Sat, Aug 22, 2015 at 9:04 AM, Gary Gregory <garydgreg...@gmail.com 
>>> <mailto:garydgreg...@gmail.com>>
>>> wrote:
>>> 
>>> Ah, like this then?
>>> 
>>>     /**
>>>      * Sets the levels of <code>parentLogger</code> and all 'child'
>>> loggers to the given <code>level</level>.
>>>      * @param parentLogger the parent logger
>>>      * @param level the new level
>>>      */
>>>     public static void setChildren(final String parentLogger, final
>>> Level level) {
>>>         // get logger config
>>>         // if exact match? Use it, if not, create it.
>>>         // set level
>>>         // update loggers
>>>         final LoggerContext loggerContext =
>>> LoggerContext.getContext(false);
>>>         final Configuration config = loggerContext.getConfiguration();
>>>         boolean set = setLevel(parentLogger, level, config);
>>>         final Map<String, LoggerConfig> loggerConfigMap =
>>> config.getLoggers();
>>>         for (Map.Entry<String, LoggerConfig> entry :
>>> loggerConfigMap.entrySet()) {
>>>             if (entry.getKey().startsWith(parentLogger)) {
>>>                 set |= setLevel(entry.getValue(), level);
>>>             }
>>>         }
>>>         if (set) {
>>>             loggerContext.updateLoggers();
>>>         }
>>>     }
>>> 
>>> Gary
>>> 
>>> On Sat, Aug 22, 2015 at 8:19 AM, Gary Gregory <garydgreg...@gmail.com 
>>> <mailto:garydgreg...@gmail.com>>
>>> wrote:
>>> 
>>> Let's say I have
>>> 
>>> Logger com = ERROR (or even just the root Logger at ERROR).
>>> 
>>> and I want Logger com.domain.foo and all its children set to DEBUG
>>> 
>>> If I get the LoggerConfig that matches the parent logger and call
>>> setLevel on that, I will end up with Logger com at DEBUG, won't I?
>>> 
>>> 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>
>>> <ggreg...@apache.org <mailto:ggreg...@apache.org>>
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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>
>>> <ggreg...@apache.org <mailto:ggreg...@apache.org>>
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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>
>>> <ggreg...@apache.org <mailto:ggreg...@apache.org>>
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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>
>>> <ggreg...@apache.org <mailto:ggreg...@apache.org>>
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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/ <http://www.manning.com/bauer3/>>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ 
>>> <http://www.manning.com/tahchiev/>>
>>> Spring Batch in Action <http://www.manning.com/templier/ 
>>> <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>
>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org 
>>> <mailto:log4j-dev-unsubscr...@logging.apache.org>
>>> For additional commands, e-mail: log4j-dev-h...@logging.apache.org 
>>> <mailto:log4j-dev-h...@logging.apache.org>
>>> 
>>> 
>>> 
>>> -- 
>>> 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