Please see the patch in https://issues.apache.org/jira/browse/LOG4J2-1090
Gary On Sat, Aug 8, 2015 at 4:05 PM, Ralph Goers <[email protected]> wrote: > Yes. > > Ralph > > > On Aug 8, 2015, at 4:03 PM, Gary Gregory <[email protected]> wrote: > > > > 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 > > > > --------------------------------------------------------------------- > 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
