Did you miss my earlier email where I said the boolean attribute you are trying 
to set is the LoggerConfig’s additivity flag?  All you have to do is 
loggerConfig.setAdditive(true|flase).  I don’t understand why the additivity 
flag would be a boolean on setLevel().

Ralph

On Jan 31, 2014, at 1:43 PM, Gary Gregory <garydgreg...@gmail.com> wrote:

> On Fri, Jan 31, 2014 at 4:33 PM, Nick Williams 
> <nicho...@nicholaswilliams.net> wrote:
> 
> On Jan 31, 2014, at 3:29 PM, Gary Gregory wrote:
> 
>> On Fri, Jan 31, 2014 at 2:00 PM, Nick Williams 
>> <nicho...@nicholaswilliams.net> wrote:
>> I do not think appenders should be in the API. Appenders are pretty much the 
>> definition of an implementation detail.
>> 
>> As for setLevel, I absolutely think it's a problem point when migrating from 
>> Log4j 1 to Log4j 2. In my Log4j 1 apps, I offer a simple admin console for 
>> changing the log levels of particular classes. This is MUCH harder to do in 
>> Log4j 2.
>> 
>> However, let's think carefully about what setLevel means. Based on the API 
>> documentation for Log4j 1, I'm not ever sure anymore what setLevel does (I 
>> haven't looked at code). I /used/ to think it set the level for that logger 
>> AND any loggers that inherit from it. Now I'm not sure.
>> 
>> So what's the use case? What might users need? Personally, I need to set the 
>> level for that logger AND any loggers that inherit from it. But I most 
>> definitely see the use case for setting the level ONLY for that logger. 
>> Perhaps we need setLevel and setAllLevels (or setDescendantLevel) methods?
>> 
>> Agreed.
>> 
>> My use case is to support our admin UI. Our old simple console is has a 
>> set-all type of setting. This is a brute force 'set all loggers to level X' 
>> setting. Our new console displays a tree with all of the loggers available. 
>> There the obvious choice is to have a set level for that node and its 
>> children. Like you, I can also imagine that users would want to only set the 
>> one node and not the children. I'm not sure how much should be reflected in 
>> the API though. In the UI that would be two menu items in the pop up: 'Set 
>> level' and 'Set level for all'. In the API setLevel and setLevels would do 
>> but the names are so close... setLevel/setChildLevels?
> 
> setLevel and setLevelCascade?
> 
> Or, just overload the name.
> 
> setLevel(Level) and setLevel(Level, boolean)?
> 
> The admin UI would send the set level request and the server would call 
> setLevel(Level, boolean). setLevel would default to setLevel(Level, true) 
> which would be cascade.
> 
> Gary
>  
> 
>> 
>> Gary
>>  
>> 
>> Nick
>> 
>> 
>> On Jan 31, 2014, at 12:32 PM, Gary Gregory wrote:
>> 
>>> On Fri, Jan 31, 2014 at 1:13 PM, Scott Deboy <scott.de...@gmail.com> wrote:
>>> Re: appenders, I was thinking about Remko's response here:
>>> 
>>> http://stackoverflow.com/questions/21303746/migrating-from-log4j-1-2-to-log4j-2-how-to-get-list-of-all-appenders-and-rolli
>>> 
>>> I've picked the low-hanging fruits and given minIndex and maxIndex 
>>> accessors.
>>> 
>>> Gary
>>>  
>>> 
>>> 
>>> On 1/31/14, Gary Gregory <garydgreg...@gmail.com> wrote:
>>> > On Fri, Jan 31, 2014 at 1:05 PM, Scott Deboy <scott.de...@gmail.com> 
>>> > wrote:
>>> >
>>> >> Add setlevel. I also think appender belongs in Api. Yes?
>>> >>
>>> >
>>> > Appenders are in the Core. That would be a big change.
>>> >
>>> > Another surprise: There is no Logger.getLevel().
>>> >
>>> > Gary
>>> >
>>> >
>>> >> On Jan 31, 2014 10:01 AM, "Gary Gregory" <garydgreg...@gmail.com> wrote:
>>> >>
>>> >>> Porting from v1...
>>> >>>
>>> >>> We do not have Logger setLevel(Level) because it is not in the LCD API
>>> >>> (Slf4j no, Logback yes, JUL yes).
>>> >>>
>>> >>> This sure makes it a pain to port from v1.
>>> >>>
>>> >>> What are the choices?
>>> >>>
>>> >>> - I hard code everything to the Core Logger API, possible if inflexible.
>>> >>> - I add a util method that checks the Logger instance to see if it is a
>>> >>> Core Logger or if it is a Slf4j logger that wraps a logback logger?
>>> >>> Bleh.
>>> >>>
>>> >>> Or, we can add setLevel and have it propagate the call down. Then we can
>>> >>> discuss whether a missing API in the underlying system means a noop or
>>> >>> an
>>> >>> exception. Like JRE Collections do.
>>> >>>
>>> >>> Thoughts?
>>> >>>
>>> >>> 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
>>> >
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
>>> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> 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

Reply via email to