Класс XMLFormatter
public class XMLFormatter extends Formatter
Спецификация DTD приведена в Приложении A к спецификации API Java Logging.
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 |
Форматирование данного сообщения в XML. |
String |
getHead |
Возвращает строку заголовка для набора записей, отформатированных в XML. |
String |
getTail |
Возвращает строку подвала для набора записей, отформатированных в XML. |
Методы, объявленные в классе java.util.logging.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(java.util.logging.LogRecord) для локализации и форматирования поля сообщения.
- Определено в:
-
formatв классеFormatter - Параметры:
-
record- запись журнала для форматирования. - Возвращает:
- отформатированную запись журнала
getHead
public String getHead(Handler h)
- Переопределяет:
-
getHeadв классеFormatter - Параметры:
-
h- целевой обработчик (может быть null) - Возвращает:
- валидная строка XML
getTail
public String getTail(Handler h)
- Переопределяет:
-
getTailв классеFormatter - Параметры:
-
h- целевой обработчик (может быть null) - Возвращает:
- валидная строка XML
© 1993, 2023, 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/21/docs/api/java.logging/java/util/logging/XMLFormatter.html