Spec-Zone.ru › OpenJDK 27

Класс XMLFormatter

java.lang.Object
java.util.logging.Formatter
java.util.logging.XMLFormatter
public class XMLFormatter extends Formatter
Форматирует LogRecord в стандартный формат XML.

Спецификация DTD приведена в приложении A к спецификации Java Logging APIs.

XMLFormatter можно использовать с произвольными кодировками символов, но обычно рекомендуется использовать UTF-8. Кодировку символов можно задать для выходного обработчика.

Требования к реализации:
Начиная с JDK 9, экземпляры LogRecord содержат Instant, значение которого может включать наносекунды с точностью выше миллисекундной. Спецификация DTD была обновлена и теперь допускает необязательный элемент <nanos>. По умолчанию XMLFormatter вычисляет поправку в наносекундах с точностью выше миллисекундной (с помощью LogRecord.getInstant().getNano() % 1000_000) и, если она не равна 0, выводит это значение поправки в новом элементе <nanos>. Затем момент события можно восстановить с помощью Instant.ofEpochSecond(millis/1000L, (millis % 1000L) * 1000_000L + nanos), где millis и nanos представляют числа, сериализованные соответственно в элементах <millis> и <nanos>.
Теперь элемент <date> будет содержать весь момент времени в формате, заданном форматтером DateTimeFormatter.ISO_INSTANT.

Для совместимости со старыми анализаторами XMLFormatter можно настроить на возврат к прежнему формату, указав свойство <xml-formatter-fully-qualified-class-name>.useInstant = false в конфигурации журналирования. Если useInstant равно false, будет сохранено прежнее форматирование. Если useInstant равно true (значение по умолчанию), будет выведен элемент <nanos>, а элемент <date> будет содержать отформатированный момент времени.

Например, чтобы настроить обычные экземпляры XMLFormatter на пропуск нового элемента <nano>, в конфигурации журналирования можно указать java.util.logging.XMLFormatter.useInstant = false.

С версии:
1.4

Краткое описание конструкторов

Конструктор Описание
XMLFormatter()
Создает новый экземпляр XMLFormatter.

Краткое описание методов

Модификатор и тип Метод Описание
String format(LogRecord record)
Форматирует заданное сообщение в XML.
String getHead(Handler h)
Возвращает строку заголовка для набора записей в формате XML.
String getTail(Handler h)
Возвращает строку завершения для набора записей в формате XML.

Методы, объявленные в классе Formatter

formatMessage
Модификатор и тип Метод Описание
String formatMessage(LogRecord record)
Локализует и форматирует строку сообщения из записи журнала.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени.

Подробное описание конструкторов

XMLFormatter

public XMLFormatter()
Создает новый экземпляр XMLFormatter.
Требования к реализации:
Начиная с JDK 9 XMLFormatter выводит время события записи в виде Instant. Этот момент времени имеет наивысшую доступную в системе точность. Элемент <date> будет содержать момент времени в формате, заданном DateTimeFormatter.ISO_INSTANT. Кроме того, если момент времени содержит наносекунды с точностью выше миллисекундной, будет выведен необязательный элемент <nanos>, содержащий поправку в наносекундах.

Это новое поведение можно отключить и восстановить прежнее форматирование, указав свойство в конфигурации журналирования. Если LogManager.getLogManager().getProperty( this.getClass().getName()+".useInstant") равно "false" или "0", будет восстановлено прежнее форматирование.

Подробное описание методов

format

public String format(LogRecord record)
Форматирует заданное сообщение в XML.

Этот метод можно переопределить в подклассе. Для локализации и форматирования поля сообщения рекомендуется использовать вспомогательный метод Formatter.formatMessage(LogRecord).

Определен в:
format в классе Formatter
Параметры:
record — запись журнала для форматирования.
Возвращает:
отформатированную запись журнала

getHead

public String getHead(Handler h)
Возвращает строку заголовка для набора записей в формате XML.
Переопределяет:
getHead в классе Formatter
Параметры:
h — целевой обработчик (может быть null)
Возвращает:
допустимую строку XML

getTail

public String getTail(Handler h)
Возвращает строку завершения для набора записей в формате XML.
Переопределяет:
getTail в классе Formatter
Параметры:
h — целевой обработчик (может быть null)
Возвращает:
допустимую строку XML

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, в том числе концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API