Log4j通过名称从configfile获取Appender而不使用logger

时间:2014-07-30 08:15:15

标签: java log4j appender

我想将我的log4j.xml中的所有appender按名称检索到我的Java类。没有连接所有appender的记录器因为我无法更改log4j.xml。有没有办法检索这些appender?某些appender未附加到任何Logger。在互联网上搜索它似乎是不可能的。

1 个答案:

答案 0 :(得分:0)

不确定但是这段代码可能会对您有所帮助:

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;
}