[英]How to get All apenders form log4j2 root logger
在log4j 1.2中,我們可以通過以下方式獲取root logger的所有附加程序。
Enumeration<Appender> it = Logger.getRootLogger().getAllAppenders();
在log4j2中,是否有類似的東西可以獲取根記錄器及其附加程序?
您可以從LoggerConfig獲取所有追加程序
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());
}
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();
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.