Как подавить строку даты из двухстрочного java.util.logging вывода?
Я использую регистратор по умолчанию Java по умолчанию, и сейчас он печатает много бесполезного мусора на выходе, вот пример этой строки кода:
log.info("Logging pointless information...")
Выведет все это:
Oct 26, 2011 9:37:57 PM java.util.logging.LogManager$RootLogger log
INFO: Logging pointless information...
Мне не нужно ничего знать, кроме этой второй строки. Как я могу удалить этот мусор? Все, что я хочу, это простое ведение журнала.
Ответы
Ответ 1
Вам нужно создать другой форматтера и использовать его вместо этого.
public class BriefFormatter extends Formatter
{
public BriefFormatter() { super(); }
@Override
public String format(final LogRecord record)
{
return record.getMessage();
}
}
Ответ 2
Возможно, это было добавлено позже, но, по крайней мере, с Java 7, java.util.logging.SimpleFormatter поддерживает получение своего формата из системного свойства. Этот аргумент JVM будет печатать только вторую строку:
-Djava.util.logging.SimpleFormatter.format='%4$s: %5$s%6$s%n'
Лично мне нравится хранить всю информацию о дате/источнике, но избавиться от новой строки (и использовать более компактный международный формат даты):
-Djava.util.logging.SimpleFormatter.format='%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n'
Ответ 3
Они задают почти тот же вопрос:
Вот пример того, как реализовать предложение Jarrod Roberson: http://www.javalobby.org/java/forums/t18515.html
В общем случае для применения форматирования вы создаете файл, обычно называемый logging.properties. В нем помещается строка вроде этого:
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
или независимо от вашего класса форматирования. Затем добавьте JVM arg следующим образом:
-Djava.util.logging.config.file=logging.properties
Или используйте более мощную систему ведения журналов, такую как Logback или Log4j, которые имеют готовые форматирующие элементы, чтобы сэкономить вам некоторую кодировку.