comment puis-je définir le log4j conversionpattern au moment de l'exécution

StackOverflow https://stackoverflow.com/questions/1403797

  •  05-07-2019
  •  | 
  •  

Question

J'ai une application Java tout en analysant les entrées d'une feuille de calcul. J'ai ajouté la possibilité d'exécuter uniquement la partie analyseur autonome à partir d'une tâche ant. Cependant, le modèle log4j normal que j'utilise peut rendre la sortie difficile à lire, j'aimerais définir un modèle simple au moment de l'exécution.

Donc, quelque chose comme log4j.appender.stdout.layout.ConversionPattern =% d {aaaa-MM-jj HH: mm: ss}% m% n

        parseDebug = new Boolean(System.getProperty("ptpunit.parseDebug")).booleanValue();

        if(parseDebug){

            // SET CONVERSION PATTERN HERE

            log.setLevel((Level) Level.DEBUG);

        }
Était-ce utile?

La solution

Je pense que vous pourriez faire quelque chose comme ceci:

ConsoleAppender a = (ConsoleAppender) Logger.getRootLogger().getAppender("stdout");
a.setLayout(new PatternLayout("%d{HH:mm:ss}  %-5.5p  %t %m%n"));

Bien sûr, vous devez modifier le type d’appeleur en fonction de celui que vous utilisez et vous devrez peut-être remplacer "Logger.getRootLogger ()". par l'appel à récupérer l'enregistreur auquel votre appender est réellement attaché.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top