That's my bad, I misread Configurator for Configuration. That said, the method org.apache.logging.log4j.core.config.AbstractConfiguration.getRootLogger() is not in the Configuration interface. Is it OK to add it?
Gary On Sat, Aug 8, 2015 at 3:42 PM, Ralph Goers <[email protected]> wrote: > I just noticed you added this to AbstractConfiguration. Wouldn’t it be > easier for users to do it as a method on Configurator? > > Ralph > > > On Aug 8, 2015, at 12:55 PM, Gary Gregory <[email protected]> > wrote: > > > > setLevel, setRootLevel; code review please, note the added check " if > > (!loggerConfig.getLevel().equals(level)) ..." > > > > diff --git > > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java > > index ada5900..7ee09ca 100644 > > --- > > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java > > +++ > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java > > @@ -39,6 +39,7 @@ > > import org.apache.logging.log4j.core.Filter; > > import org.apache.logging.log4j.core.Layout; > > import org.apache.logging.log4j.core.LogEvent; > > +import org.apache.logging.log4j.core.LoggerContext; > > import org.apache.logging.log4j.core.appender.AsyncAppender; > > import org.apache.logging.log4j.core.appender.ConsoleAppender; > > import org.apache.logging.log4j.core.async.AsyncLoggerConfig; > > @@ -829,4 +830,23 @@ > > return buffer.toByteArray(); > > } > > > > + @Override > > + public void setLevel(final String loggerName, final Level level) { > > + setLevel(getLoggerConfig(loggerName), level); > > + } > > + > > + @Override > > + public void setRootLevel(final Level level) { > > + setLevel(getRootLogger(), level); > > + } > > + > > + private void setLevel(final LoggerConfig loggerConfig, final Level > > level) { > > + if (!loggerConfig.getLevel().equals(level)) { > > + loggerConfig.setLevel(level); > > + final LoggerContext loggerContext = (LoggerContext) > > LogManager.getContext(false); > > + loggerContext.updateLoggers(); > > + } > > + } > > + > > + > > } > > diff --git > > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java > > index c592b05..29fb7b2 100644 > > --- > > > a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java > > +++ > > > b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java > > @@ -137,4 +137,18 @@ > > * @return the custom levels defined in the current configuration > > */ > > List<CustomLevelConfig> getCustomLevels(); > > + > > + /** > > + * Sets the level of the given logger name. > > + * > > + * @param loggerName the logger name > > + * @param level the new level > > + */ > > + void setLevel(String loggerName, Level level); > > + > > + /** > > + * Sets the level of the root logger. > > + * @param level the new level > > + */ > > + void setRootLevel(Level level); > > } > > > > Gary > > > > On Sat, Aug 8, 2015 at 11:14 AM, Ralph Goers <[email protected] > > > > wrote: > > > >> Yup. > >> > >> And while your at it you might want to add setRootLevel(Level level); > >> > >> Ralph > >> > >>> On Aug 8, 2015, at 10:19 AM, Gary Gregory <[email protected]> > >> wrote: > >>> > >>> Like this: > >>> > >>> diff --git > >>> > >> > a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java > >>> > >> > b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java > >>> index ada5900..bf01c3e 100644 > >>> --- > >>> > >> > a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java > >>> +++ > >>> > >> > b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java > >>> @@ -39,6 +39,7 @@ > >>> import org.apache.logging.log4j.core.Filter; > >>> import org.apache.logging.log4j.core.Layout; > >>> import org.apache.logging.log4j.core.LogEvent; > >>> +import org.apache.logging.log4j.core.LoggerContext; > >>> import org.apache.logging.log4j.core.appender.AsyncAppender; > >>> import org.apache.logging.log4j.core.appender.ConsoleAppender; > >>> import org.apache.logging.log4j.core.async.AsyncLoggerConfig; > >>> @@ -788,6 +789,13 @@ > >>> return list; > >>> } > >>> > >>> + public void setLevel(String loggerName, Level level) { > >>> + LoggerConfig loggerConfig = getLoggerConfig(loggerName); > >>> + loggerConfig.setLevel(level); > >>> + final LoggerContext loggerContext = (LoggerContext) > >>> LogManager.getContext(false); > >>> + loggerContext.updateLoggers(); > >>> + } > >>> + > >>> private void setParents() { > >>> for (final Map.Entry<String, LoggerConfig> entry : > >>> loggers.entrySet()) { > >>> final LoggerConfig logger = entry.getValue(); > >>> > >>> ? > >>> > >>> On Fri, Aug 7, 2015 at 5:43 AM, Ralph Goers < > [email protected]> > >>> wrote: > >>> > >>>> I'd recommend the Configurator class. > >>>> > >>>> Ralph > >>>> > >>>>> On Aug 6, 2015, at 9:46 PM, Gary Gregory <[email protected]> > >> wrote: > >>>>> > >>>>> > >>>>> For the simple case where you want to update one level, I think we > >> should > >>>>> have a one method call for folks. Where would be the best place to > hang > >>>>> that? > >>>>> > >>>>> Gary > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> 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 > >>> <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 > > <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 <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
