Can you explain what it is you are really trying to do? Rather than just
answer specific questions I am wondering if there isn't a better way to do what
you want.
Ralph
On Jul 22, 2013, at 7:14 AM, SMITH, CURTIS wrote:
> From a thread back in May:
>
> My question to the below snips of the thread are;
>
> My app has many Catagories (using 1.x terminology). To setLevel in 1.x I had
> to getCurrentCatagories() and iterate over the list setting level.
>
> In 2.x, does the code below set all Appenders regardless of what Level they
> were set to in log4j.xml?
>
> loggerConfig.setLevel(Level.DEBUG);
> ctx.updateLoggers();
>
> The next question is how to set the level of just one Appender (Logger??) ?
> Is there a way to get the list / iterator of Appenders(Logger?) like you
> could get a a list of Catagories in 1.x?
>
> It appears that LogManager.getLogger("foo") you need to know the logger names
> at coding time.
>
>
> Thanks, curt
>
> =======
>
> Ralph Goers said:
>>> No, the X Logger does not inherit its level from the root Logger. It
>>> inherits its level from
> the root LoggerConfig. See the picture at
> http://logging.apache.org/log4j/2.x/manual/architecture.html.
>
> The level you are modifying is brought into each Logger so that the
> level can be tested very
> quickly. That is why the note on the setLevel method says it is there
> primarily for unit
> testing.
>
> To do what you are attempting below you would need to do:
>
> LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
> Configuration config = ctx.getConfiguration();
> LoggerConfig loggerConfig = config.getRootLogger();
> /* You could also specify the actual logger name as below and it will
> return the LoggerConfig
> used by the Logger.
> LoggerConfig loggerConfig = getLoggerConfig("X");
> */
> loggerConfig.setLevel(Level.DEBUG);
> ctx.updateLoggers(); // This causes all Loggers to refetch information
> from their LoggerConfig.
>
> Ralph
>
> Eric Scheie said:
>>> This
> is the actual code I used.
>
> LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
>
> Configuration config = ctx.getConfiguration();
>
> LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.
> ROOT_LOGGER_NAME);
>
> loggerConfig.setLevel(level);
>
> ctx.updateLoggers();
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]