Java日志记录:格式化程序
时间:2020-01-09 10:36:44  来源:igfitidea点击:
Java Logging API中的"处理程序"使用java.util.logging.Formatter来格式化LogRecord,然后再将其写入外部系统。
Java带有两个内置的Formatter(Formatter的子类):
- SimpleFormatter
 - XMLFormatter
 
Java Logging API中的各种Handler默认情况下都使用这两个Formatter中的任何一个,但是我们也可以在Handler上设置自己的自定义Formatter子类。
我们可以通过子类化java.util.logging.Formatter类来创建自己的Formatter。这是一个简单的示例:
public class MyFormatter extends Formatter {
    @Override
    public String format(LogRecord record) {
        return record.getLevel() + ":" + record.getMessage();
    }
}
子类必须重写Formatter类中的抽象format方法。由format()返回的String是由Handler转发给外部系统的东西。字符串的确切格式由我们决定。
Formatter类还包含便利方法formatMessage(),该方法可用于通过LogRecord的ResourceBundle格式化消息。这是一个例子:
public class MyFormatter extends Formatter {
    @Override
    public String format(LogRecord record) {
        return formatMessage(record);
    }
}
我们通常不需要实现自己的Formatter,而是偶尔需要特定的日志格式,则自定义Formatter可能会有用。

