2017-04-27 6 views
0

모든 log4j 로거를 StringBuilder에 넣어야하는 목록에 추가하려고합니다. 다음과 같이 내 방법은 같습니다StringBuilder 및 형식으로 log4j 로거 목록을 넣으십시오.

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);

+0

실제로 log4j 또는 log4j2입니까? – Fildor

+0

@Fildor 그것은'log4j'입니다. – shaz

답변

0

그런 다음 addLoggerInfo(sb)의 호출에 sb.toString()를 기록

sb.append("[").append(message).append("]");을한다.