Как мне отформатировать лог сообщение - PullRequest
6 голосов
/ 12 августа 2011

Я бы хотел отформатировать свое сообщение в журнале перед его выводом на консоль Logger.fine

например, Как мне отформатировать "{0} имеет {1} яблок с собой"Таким образом, входные данные - Джон и 10

. Я бы предпочел каркас ведения журналов, который обеспечивает решение этой проблемы, и я не хочу форматировать эти сообщения отдельно.Кажется, что специфичные для JDK6 классы журналирования не обладают такой гранулярностью.

Ответы [ 3 ]

16 голосов
/ 12 августа 2011

Использование MessageFormat :

String s = MessageFormat.format("{0} has {1} apples with him", "John", 10);

или String.format :

String s = String.format("%1$s has %2$d apples with him", "John", 10);
6 голосов
/ 12 августа 2011

Даже при ведении журнала JDK вы можете использовать пользовательский Formatter для обработки форматирования сообщений журнала с параметрами.

Для (упрощенного) примера:

public class MyFormatter extends Formatter {

    /**
     * @see java.util.logging.Formatter#format(java.util.logging.LogRecord)
     */
    @Override
    public String format(final LogRecord record) {
        return MessageFormat.format(record.getMessage(), record.getParameters());
    }
}

Затем, чтобы использовать его, вы можете настроить файл logging.properties с:

java.util.logging.ConsoleHandler.formatter = com.example.MyFormatter
1 голос
/ 12 августа 2011

Просто используйте String.format:

String.format
   ("%s has %s apples with him", "John", "10");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...