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

Reply via email to