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

Put list of log4j loggers into StringBuilder and format

我正在尝试将所有 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
}

问题是上面的代码如何引入StringBuilder并将日志语句格式化为特定格式

([[name=XXX | level=YYY], [name=XXX | level=YYY]]) 比一堆消息。

局限性:使用庞大的代码库并且只有 .0001% 的代码知识。做一点点我试图理解代码库。任务是记录记录器并以漂亮的格式打印它。

代替LOG.info(message);sb.append("[").append(message).append("]");

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