2017-04-27 1 views
0

J'essaie d'ajouter tous les enregistreurs log4j dans une liste qui doit être mis dans StringBuilder. Ma méthode se présente comme suit:Mettez la liste des enregistreurs log4j dans StringBuilder et le format

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 
} 

La question est comment le code ci-dessus introduire StringBuilder et à formater la déclaration de journal dans un format spécifique

([[name=XXX | level=YYY], [name=XXX | level=YYY]]) que groupe de messages. Limitations: Travailler avec une énorme base de code et avec une connaissance de seulement 0,001% du code. En faisant de petits morceaux, j'essaie de comprendre la base du code. La tâche consiste à enregistrer les enregistreurs et à les imprimer dans un format sympa.

+0

Est-ce réellement log4j ou log4j2? – Fildor

+0

@Fildor C'est "log4j" – shaz

Répondre

0

Au lieu de faire LOG.info(message);sb.append("[").append(message).append("]");

Connectez-vous ensuite sb.toString() à l'appelant de addLoggerInfo(sb).