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