como posso definir o log4j conversionpattern em tempo de execução
Pergunta
Eu tenho um aplicativo Java enquanto a entrada parses de uma planilha. Eu adicionei a capacidade de executar apenas a parte autônoma analisador de ser uma tarefa formiga. No entanto, o padrão log4j normal, eu estou usando pode fazer a saída difícil de ler, eu gostaria de definir um padrão simples em tempo de execução.
Então, algo como log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-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);
}
Solução
Eu acho que você poderia fazer algo parecido com isto:
ConsoleAppender a = (ConsoleAppender) Logger.getRootLogger().getAppender("stdout");
a.setLayout(new PatternLayout("%d{HH:mm:ss} %-5.5p %t %m%n"));
É claro que você tem que mudar o tipo Appender de acordo com o que você está usando e você pode ter que substituir "Logger.getRootLogger ()" pela uma chamada para buscar o logger seu appender está realmente ligado a.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow