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