簡體   English   中英

如何從log4j2根記錄器獲取所有apender

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM