Note: in case you didn't know, everyone who submits patches that are applied gets "credit" for it. See the change log for any release. Without a Jira ticket we can't do that.
Ralph > On Aug 9, 2015, at 2:28 AM, Gary Gregory <[email protected]> wrote: > > Patch applied. TY. In the future, please create a JIRA for patches. > > Keep them coming :-) > > Cheers, > Gary > >> On Sun, Aug 9, 2015 at 1:11 AM, Xen <[email protected]> wrote: >> >> I've seen the commit. I will check it out. >> >> Offtopic: fixed a typo in the javadoc: >> >> >> diff --git >> a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java >> b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java >> index 3c8c44a..14ea97b 100644 >> --- >> a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java >> +++ >> b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java >> @@ -66,7 +66,7 @@ import org.apache.logging.log4j.util.Strings; >> * </ol> >> * >> * If the ConfigurationFactory that was added returns null on a call to >> - * getConfiguration the any other ConfigurationFactories found as plugins >> will >> + * getConfiguration then any other ConfigurationFactories found as >> plugins will >> * be called in their respective order. DefaultConfiguration is always >> called >> * last if no configuration has been returned. >> */ >> >> >> "I will check it out." Now isn't that ambiguous :P. >> >> Regards.. >> >> >> >> >> Quoting Gary Gregory <[email protected]>: >> >> Pushed to Git master. >>> >>> Xen: Please see the setLevel methods in Configurator. >>> >>> Gary >>> >>> On Sat, Aug 8, 2015 at 4:24 PM, Gary Gregory <[email protected]> >>> wrote: >>> >>> 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 >>> >>> >>> -- >>> 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]
