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: log4j-user-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-user-h...@logging.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to