Класс 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форматировщика.Для совместимости со старыми парсерами, XMLFormatters можно настроить на возвращение к старому формату, указав
<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. |
Краткое описание методов
Методы, объявленные в классе java.util.logging.Formatter
formatMessage
Подробное описание конструкторов
XMLFormatter
public XMLFormatter()
- Требования к реализации:
- С JDK 9 XMLFormatter будет выводить время события записи события в виде момента времени. Этот момент имеет наилучшее доступное на системе разрешение. Элемент
<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, 2021, 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/17/docs/api/java.logging/java/util/logging/XMLFormatter.html