Как подавить строку даты из двухстрочного 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, которые имеют готовые форматирующие элементы, чтобы сэкономить вам некоторую кодировку.