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