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?

Nick

On Jan 31, 2014, at 12:32 PM, Gary Gregory wrote:

> On Fri, Jan 31, 2014 at 1:13 PM, Scott Deboy <[email protected]> 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 <[email protected]> wrote:
> > On Fri, Jan 31, 2014 at 1:05 PM, Scott Deboy <[email protected]> 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" <[email protected]> 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: [email protected] | [email protected]
> >>> 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: [email protected] | [email protected]
> > 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: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 
> 
> -- 
> E-Mail: [email protected] | [email protected] 
> 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