Как я могу установить шаблон преобразования log4j во время выполнения
Вопрос
У меня есть приложение Java, в то время как анализирует ввод из электронной таблицы. Я добавил возможность запуска только отдельной части парсера из задачи муравья. Однако обычный шаблон log4j, который я использую, может затруднить чтение выходных данных. Я хотел бы установить простой шаблон во время выполнения.
Так что-то вроде log4j.appender.stdout.layout.ConversionPattern =% d {гггг-мм-дд ЧЧ: мм: сс}% m% n
parseDebug = new Boolean(System.getProperty("ptpunit.parseDebug")).booleanValue();
if(parseDebug){
// SET CONVERSION PATTERN HERE
log.setLevel((Level) Level.DEBUG);
}
Решение
Я думаю, вы могли бы сделать что-то вроде этого:
ConsoleAppender a = (ConsoleAppender) Logger.getRootLogger().getAppender("stdout");
a.setLayout(new PatternLayout("%d{HH:mm:ss} %-5.5p %t %m%n"));
Конечно, вы должны изменить тип Appender в соответствии с тем, который вы используете, и вам, возможно, придется заменить " Logger.getRootLogger () " с помощью вызова для выбора регистратора, к которому фактически присоединен ваш appender.
Не связан с StackOverflow