Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在logback中获取所有appender名称_Java_Logging_Logback_Logback Classic - Fatal编程技术网

Java 如何在logback中获取所有appender名称

Java 如何在logback中获取所有appender名称,java,logging,logback,logback-classic,Java,Logging,Logback,Logback Classic,如何在使用logback时获取Java列表中设置的所有appender名称的列表 以下代码将收集当前日志上下文中的所有附加程序: private Map<String, Appender<ILoggingEvent>> getAppendersMap() { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); Map<String, Ap

如何在使用logback时获取Java列表中设置的所有appender名称的列表

以下代码将收集当前
日志上下文中的所有附加程序

private Map<String, Appender<ILoggingEvent>> getAppendersMap() {
    LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();


    Map<String, Appender<ILoggingEvent>> appendersMap = new HashMap<>();
    for (Logger logger : loggerContext.getLoggerList()) {

        Iterator<Appender<ILoggingEvent>> appenderIterator = logger.iteratorForAppenders();
        while (appenderIterator.hasNext()) {
            Appender<ILoggingEvent> appender = appenderIterator.next();
            if (!appendersMap.containsKey(appender.getName())) {
                appendersMap.put(appender.getName(), appender);
            }
        }
    }

    return appendersMap;
}
私有映射getAppenderMap(){
LoggerContext LoggerContext=(LoggerContext)LoggerFactory.getILoggerFactory();
Map appendersMap=newhashmap();
对于(记录器:loggerContext.getLoggerList()){
迭代器appenderierator=logger.iteratorForAppenders();
while(appenderierator.hasNext()){
Appender Appender=appenderierator.next();
如果(!appenderMap.containsKey(appender.getName())){
appenderMap.put(appender.getName(),appender);
}
}
}
返回AppenderMap;
}
然后,您可以按如下方式列出名称:

Map<String, Appender<ILoggingEvent>> appendersMap = getAppendersMap();

for (String key : appendersMap.keySet()) {
    logger.info("appender name = {}", key);
}
Map appendersMap=getAppendersMap();
for(字符串键:appendersMap.keySet()){
info(“appender name={}”,key);
}

以下代码将收集当前
日志上下文中的所有附加程序

private Map<String, Appender<ILoggingEvent>> getAppendersMap() {
    LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();


    Map<String, Appender<ILoggingEvent>> appendersMap = new HashMap<>();
    for (Logger logger : loggerContext.getLoggerList()) {

        Iterator<Appender<ILoggingEvent>> appenderIterator = logger.iteratorForAppenders();
        while (appenderIterator.hasNext()) {
            Appender<ILoggingEvent> appender = appenderIterator.next();
            if (!appendersMap.containsKey(appender.getName())) {
                appendersMap.put(appender.getName(), appender);
            }
        }
    }

    return appendersMap;
}
私有映射getAppenderMap(){
LoggerContext LoggerContext=(LoggerContext)LoggerFactory.getILoggerFactory();
Map appendersMap=newhashmap();
对于(记录器:loggerContext.getLoggerList()){
迭代器appenderierator=logger.iteratorForAppenders();
while(appenderierator.hasNext()){
Appender Appender=appenderierator.next();
如果(!appenderMap.containsKey(appender.getName())){
appenderMap.put(appender.getName(),appender);
}
}
}
返回AppenderMap;
}
然后,您可以按如下方式列出名称:

Map<String, Appender<ILoggingEvent>> appendersMap = getAppendersMap();

for (String key : appendersMap.keySet()) {
    logger.info("appender name = {}", key);
}
Map appendersMap=getAppendersMap();
for(字符串键:appendersMap.keySet()){
info(“appender name={}”,key);
}
谢谢@glytching

我找到了一个简短的答案:

LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
for (ch.qos.logback.classic.Logger logger : context.getLoggerList()) {
    for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders(); index.hasNext();) {
        Appender<ILoggingEvent> appender = index.next();
    }
}
LoggerContext context=(LoggerContext)LoggerFactory.getILoggerFactory();
对于(ch.qos.logback.classic.Logger记录器:context.getLoggerList()){
for(Iterator index=logger.iteratorforappendes();index.hasNext();){
Appender Appender=index.next();
}
}
谢谢@glytching

我找到了一个简短的答案:

LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
for (ch.qos.logback.classic.Logger logger : context.getLoggerList()) {
    for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders(); index.hasNext();) {
        Appender<ILoggingEvent> appender = index.next();
    }
}
LoggerContext context=(LoggerContext)LoggerFactory.getILoggerFactory();
对于(ch.qos.logback.classic.Logger记录器:context.getLoggerList()){
for(Iterator index=logger.iteratorforappendes();index.hasNext();){
Appender Appender=index.next();
}
}