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

Reply via email to