Класс XMLFormatter
public class XMLFormatter extends Formatter
Спецификация 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. |
Краткое описание методов
Методы, объявленные в классе Formatter
formatMessage
Подробное описание конструкторов
XMLFormatter
public 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)
Этот метод можно переопределить в подклассе. Для локализации и форматирования поля сообщения рекомендуется использовать вспомогательный метод Formatter.formatMessage(LogRecord).
getHead
getTail
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.logging/java/util/logging/XMLFormatter.html