¿Cómo puedo establecer el log4j conversionpattern en tiempo de ejecución?

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo una aplicación Java mientras analiza la entrada de una hoja de cálculo. He agregado la capacidad de ejecutar solo la parte del analizador independiente de una tarea ant. Sin embargo, el patrón log4j normal que estoy usando puede hacer que la salida sea difícil de leer, me gustaría establecer un patrón simple en tiempo de ejecución.

Entonces, algo como log4j.appender.stdout.layout.ConversionPattern =% d {aaaa-MM-dd HH: mm: ss}% m% n

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

        if(parseDebug){

            // SET CONVERSION PATTERN HERE

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

        }
¿Fue útil?

Solución

Creo que podrías hacer algo como esto:

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

Por supuesto, tiene que cambiar el tipo de Appender de acuerdo con el que está usando y es posible que deba reemplazar " Logger.getRootLogger () " por la llamada para obtener el registrador al que está adjuntado su appender.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top