在log4j 1.2中,我们可以通过以下方式获取root logger的所有appender。
Enumeration<Appender> it = Logger.getRootLogger().getAllAppenders();
在log4j2中是否有类似的东西来获取根记录器及其附加程序?
答案 0 :(得分:1)
你可以从LoggerConfig
获取所有appender org.apache.logging.log4j.core.LoggerContext logContext = (org.apache.logging.log4j.core.LoggerContext) LogManager
.getContext(false);
Map<String, LoggerConfig> map = logContext.getConfiguration().getLoggers();
for(LoggerConfig c:map.values()){
System.out.println(c.getAppenders());
}
答案 1 :(得分:0)
AFAIK,你需要这样的东西(也许有些东西不那么复杂......): 取自
org.apache.logging.log4j.core.jmx.Server:
LoggerContextFactory factory = LogManager.getFactory();
ContextSelector selector = ((Log4jContextFactory) factory).getSelector();
for (LoggerContext ctx : selector.getLoggerContexts()) {
...
Map<String, Appender> m = ctx.getConfiguration().getAppenders();
...
}