如何格式化我的日志消息

时间:2011-08-12 07:15:10

标签: java logging

我想在控制台Logger.fine

上打印之前格式化我的日志消息

e.g。如何格式化“{0}有{1}个苹果”,因此输入为John和10

我更喜欢一个日志框架,它提供了一个解决方案,我不想单独格式化这些消息。 JDK6特定的日志记录类似乎没有这些粒度。

3 个答案:

答案 0 :(得分:16)

使用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);

答案 1 :(得分:6)

即使只使用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

答案 2 :(得分:1)

只需使用String.format

String.format
   ("%s has %s apples with him", "John", "10");