0

I would like to retrieve all the appenders from my log4j.xml by name to my Java class. there is no logger that has all appenders attached Because I cannot change the log4j.xml. Is there any way to retrieve those appenders? Some appenders aren't attached to any Logger. searching the internet it seemed not to be possible.

Cupple Kay
  • 155
  • 2
  • 14

1 Answers1

0

Not sure but maybe this code will help you:

static Set<Appender> getAllAppenders() {
    Set<Appender> allAppenders = new HashSet<>();
    LoggerRepository repository = LogManager.getLoggerRepository();
    Enumeration<Logger> loggers = repository.getCurrentLoggers();
    while (loggers.hasMoreElements()) {
        Logger logger = loggers.nextElement();
        Enumeration<Appender> appenders = logger.getAllAppenders();
        while (appenders.hasMoreElements()) {
            allAppenders.add(appenders.nextElement());
        }
    }
    return allAppenders;
}
shlomi33
  • 1,458
  • 8
  • 9