Class XMLFormatter
- java.lang.Object
 -  
- java.util.logging.Formatter
 -  
- java.util.logging.XMLFormatter
 
 
 
public class XMLFormatter extends Formatter
Format a LogRecord into a standard XML format.
The DTD specification is provided as Appendix A to the Java Logging APIs specification.
The XMLFormatter can be used with arbitrary character encodings, but it is recommended that it normally be used with UTF-8. The character encoding can be set on the output Handler.
- Implementation Requirements:
 - Since JDK 9, instances of LogRecord contain an 
Instantwhich can have nanoseconds below the millisecond resolution. The DTD specification has been updated to allow for an optional<nanos>element. By default, the XMLFormatter will compute the nanosecond adjustment below the millisecond resolution (usingLogRecord.getInstant().getNano() % 1000_000) - and if this is not 0, this adjustment value will be printed in the new<nanos>element. The event instant can then be reconstructed usingInstant.ofEpochSecond(millis/1000L, (millis % 1000L) * 1000_000L + nanos)wheremillisandnanosrepresent the numbers serialized in the<millis>and<nanos>elements, respectively.
The<date>element will now contain the whole instant as formatted by theDateTimeFormatter.ISO_INSTANTformatter.For compatibility with old parsers, XMLFormatters can be configured to revert to the old format by specifying a
<xml-formatter-fully-qualified-class-name>.useInstant = falseproperty in the logging configuration. WhenuseInstantisfalse, the old formatting will be preserved. WhenuseInstantistrue(the default), the<nanos>element will be printed and the<date>element will contain the formatted instant.For instance, in order to configure plain instances of XMLFormatter to omit the new
<nano>element,java.util.logging.XMLFormatter.useInstant = falsecan be specified in the logging configuration. - Since:
 - 1.4
 
Constructor Summary
| Constructor | Description | 
|---|---|
XMLFormatter() |    Creates a new instance of XMLFormatter.  |  
Method Summary
| Modifier and Type | Method | Description | 
|---|---|---|
String |  format(LogRecord record) |    Format the given message to XML.  |  
String |  getHead(Handler h) |    Return the header string for a set of XML formatted records.  |  
String |  getTail(Handler h) |    Return the tail string for a set of XML formatted records.  |  
Methods declared in class java.util.logging.Formatter
formatMessage  Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait  Constructor Detail
XMLFormatter
public XMLFormatter()
Creates a new instance of XMLFormatter.
- Implementation Requirements:
 - Since JDK 9, the XMLFormatter will print out the record event time as an Instant. This instant has the best resolution available on the system. The 
<date>element will contain the instant as formatted by theDateTimeFormatter.ISO_INSTANT. In addition, an optional<nanos>element containing a nanosecond adjustment will be printed if the instant contains some nanoseconds below the millisecond resolution.This new behavior can be turned off, and the old formatting restored, by specifying a property in the logging configuration. If
LogManager.getLogManager().getProperty( this.getClass().getName()+".useInstant")is"false"or"0", the old formatting will be restored. 
Method Detail
format
public String format(LogRecord record)
Format the given message to XML.
 This method can be overridden in a subclass. It is recommended to use the Formatter.formatMessage(java.util.logging.LogRecord) convenience method to localize and format the message field.
- Specified by:
 - 
formatin classFormatter - Parameters:
 - 
record- the log record to be formatted. - Returns:
 - a formatted log record
 
getHead
public String getHead(Handler h)
Return the header string for a set of XML formatted records.
- Overrides:
 - 
getHeadin classFormatter - Parameters:
 - 
h- The target handler (can be null) - Returns:
 - a valid XML string
 
getTail
public String getTail(Handler h)
Return the tail string for a set of XML formatted records.