>LogManager.getCurrentLoggers() gives you an enumeration of the loggers in the >repository Thank you, Heri. Will have a look at it. -Jaikiran
Bender Heri <[EMAIL PROTECTED]> wrote: LogManager.getCurrentLoggers() gives you an enumeration of the loggers in the repository. But I am not shure if this is a set already asked for loggers (by Logger.getLogger(..)) or if this is a set of configured loggers or both. You have to try or annother log4j guru can answer this. Heri > -----Original Message----- > From: jaikiran pai [mailto:[EMAIL PROTECTED] > Sent: Tuesday, July 04, 2006 2:39 PM > To: Log4J Users List > Subject: RE: Get all appenders configured in log4j - Possible? > > > Thank you, Heri, for that answer. It works. However it does > have one catch, the method needs to know the logger name. > What i was trying out was: > > for (each logger mentioned in the log4j.xml) { > for (each appender of the logger) { > //get the appender information > } > } > > The code that you mentioned does the second part of listing > the information of all appenders given a logger name. Can i > somehow enhance it to implement the requirement mentioned above? > > Thanks again. > -Jaikiran > > > Bender Heri wrote: > /** > * Finds the next appender with the given name within the > hierarchie which is > * defined by the given Logger, incl. RootLogger > * > * @param aLog the logger whose appender should be found. > * @param aAppenderName the name of the desired appender > * @return an array with two entries: entry[0] is the Logger > to which the found > * appender is attached, entry[1] is the found Appender > * @throws Exception if no appender could be found > */ > public static Object[] getNextAppenderInHierarchie( Logger > aLog, String aAppenderName ) > throws Exception > { > Logger log = aLog; > String name = aLog.getName(); > Appender a = null; > > while ( ( a = log.getAppender( aAppenderName ) ) == null ) > { > int i = name.lastIndexOf( '.' ); > > if ( i == -1 ) > { > // the entire hierarchy was checked. Try also the root logger: > log = Logger.getRootLogger(); > a = log.getAppender( aAppenderName ); > > if ( a == null ) > { > throw new Exception( new StringBuffer( "appender " ) > .append( aAppenderName ) > .append( " not found for logger " ) > .append( aLog.getName() ).toString() ); > } // if a == null > > break; > } // if name.length() == 0 > > name = name.substring( 0, i ); > > log = Logger.getLogger( name ); > } // while ( ( a = aLog.getAppender( "DB_APPENDER" ) ) == null ) > > Object[] result = new Object[2]; > result[0] = log; > result[1] = a; > > return result; > > } > > With this method you can only find the appender CONSOLE > because you didn't attacht the appender FILE to any logger. > > Heri > > > > -----Original Message----- > > From: jaikiran pai [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, July 04, 2006 12:03 PM > > To: log4j-user@logging.apache.org > > Subject: Get all appenders configured in log4j - Possible? > > > > > > Is there some way (API), through which i can get a collection > > of appenders that have been mentioned(configured) through > > log4j config files? Consider the following log4j.xml: > > > > ---------------------------------------------------------------- > > > > > > > xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> > > > > > class="org.jboss.logging.appender.RollingFileAppender"> > > > class="org.jboss.logging.util.OnlyOnceErrorHandler"/> > > > > value="${jboss.server.home.dir}/log/server.log"/> > > > > > > [%X{TAPUSERNAME}] %-5p [%c] %m%n" name="ConversionPattern" /> > > > > > > > class="org.apache.log4j.ConsoleAppender"> > > > class="org.jboss.logging.util.OnlyOnceErrorHandler"/> > > > > > > > > > > > [Category] Message\n --> > > > > [%X{TAPUSERNAME}] %-5p [%c{1}] %m%n" name="ConversionPattern" /> > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------- > > > > Can i get a collection containing the instances of appender > > named "FILE" and "CONSOLE" in the above case? > > > > regards, > > -Jaikiran > > > > > > > > --------------------------------- > > Yahoo! India Answers: Share what you know. Learn something > > new Click here > > Catch all the FIFA World Cup 2006 action on Yahoo! India Click here > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------- > Yahoo! India Answers: Share what you know. Learn something > new Click here > Catch all the FIFA World Cup 2006 action on Yahoo! India Click here > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------- Yahoo! India Answers: Share what you know. Learn something new Click here Catch all the FIFA World Cup 2006 action on Yahoo! India Click here