Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 将log4j记录器列表放入StringBuilder并格式化_Java_Log4j_Stringbuilder - Fatal编程技术网

Java 将log4j记录器列表放入StringBuilder并格式化

Java 将log4j记录器列表放入StringBuilder并格式化,java,log4j,stringbuilder,Java,Log4j,Stringbuilder,我正在尝试将所有log4j记录器添加到需要放入StringBuilder的列表中。我的方法如下所示: private void addLoggerInfo(StringBuilder sb) { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Map<String, LoggerConfig> loggers = ctx.getConfiguration().getLogge

我正在尝试将所有
log4j
记录器添加到需要放入
StringBuilder
的列表中。我的方法如下所示:

    private void addLoggerInfo(StringBuilder sb) {

    LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
    Map<String, LoggerConfig> loggers = ctx.getConfiguration().getLoggers();

    for (Iterator<String> iterator = loggers.keySet().iterator(); iterator.hasNext();) {
        String key = iterator.next();
        LoggerConfig cfg = loggers.get(key);
        String message = String.format("Logger for key %s : name: %s level: %s" , key,cfg.getName(), cfg.getLevel());
        LOG.info(message);
    }
//Need to put the list into StringBuilder
}
private void addLoggerInfo(StringBuilder sb){
LoggerContext ctx=(LoggerContext)LogManager.getContext(false);
映射记录器=ctx.getConfiguration().getLoggers();
for(Iterator Iterator=loggers.keySet().Iterator();Iterator.hasNext();){
String key=iterator.next();
LoggerConfig cfg=loggers.get(key);
String message=String.format(“键%s的记录器:名称:%s级别:%s”,键,cfg.getName(),cfg.getLevel());
日志信息(消息);
}
//需要将列表放入StringBuilder
}
问题是上面的代码如何向它引入
StringBuilder
,并以特定的格式格式化日志语句

([[name=XXX | level=YYY],[name=XXX | level=YYY]])

局限性:使用庞大的代码库,对代码的了解率仅为.0001%。做一些小的事情,我试图理解代码库。任务是记录日志并以良好的格式打印。

而不是
log.info(消息)
do
sb.append(“[”).append(message.append(“])


然后在
addLoggerInfo(sb)
的调用者中记录
sb.toString()

它实际上是log4j还是log4j2?@Fildor它是
log4j