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
可能会有用。