Пакет java.util.logging
Существует четыре основных варианта использования журналов:
- Диагностика проблем конечными пользователями и системными администраторами. Она заключается в простом протоколировании распространённых проблем, которые можно устранить или отслеживать локально, например исчерпания ресурсов, нарушений безопасности и простых ошибок конфигурации.
- Диагностика проблем инженерами технической поддержки. Информация журналов, используемая инженерами технической поддержки, может быть значительно сложнее и подробнее той, которая необходима системным администраторам. Как правило, для получения такой информации требуется дополнительное протоколирование в отдельных подсистемах.
- Диагностика проблем организацией-разработчиком. При возникновении проблемы в рабочей среде может потребоваться передать собранную информацию журнала исходной команде разработчиков для диагностики. Эта информация может быть чрезвычайно подробной и довольно сложной для понимания. Она может включать детальную трассировку внутреннего выполнения отдельных подсистем.
- Диагностика проблем разработчиками. API ведения журналов также можно использовать для отладки разрабатываемого приложения. Это может включать информацию журналов, созданную целевым приложением, а также информацию, созданную библиотеками нижнего уровня. Однако следует учитывать, что, хотя такое использование вполне оправдано, API ведения журналов не предназначено для замены обычных средств отладки и профилирования, которые могут уже существовать в среде разработки.
Ключевые элементы этого пакета:
- Logger: основной объект, с помощью которого приложения выполняют вызовы протоколирования. Объект Logger используется для регистрации сообщений определённого компонента системы или приложения.
- LogRecord: используется для передачи запросов на протоколирование между инфраструктурой ведения журналов и отдельными обработчиками журналов.
- Handler: экспортирует объекты LogRecord в различные места назначения, включая память, выходные потоки, консоли, файлы и сокеты. Для этой цели существует множество подклассов Handler. Дополнительные обработчики могут разрабатываться сторонними организациями и поставляться поверх основной платформы.
- Level: определяет набор стандартных уровней протоколирования, которые можно использовать для управления выводом журналов. Программы можно настроить на вывод записей для некоторых уровней и игнорирование записей для других.
- Filter: обеспечивает более точный контроль над тем, что попадает в журнал, помимо контроля, предоставляемого уровнями протоколирования. API ведения журналов поддерживает универсальный механизм фильтрации, позволяющий коду приложения подключать произвольные фильтры для управления выводом журналов.
- Formatter: обеспечивает поддержку форматирования объектов LogRecord. Этот пакет включает два форматировщика — SimpleFormatter и XMLFormatter — для форматирования записей журнала соответственно в обычном тексте или XML. Как и в случае с обработчиками, сторонние организации могут разрабатывать дополнительные форматировщики.
API ведения журналов предоставляет средства как статического, так и динамического управления конфигурацией. Статическое управление позволяет специалистам технической поддержки задать определённую конфигурацию, а затем перезапустить приложение с новыми настройками ведения журналов. Динамическое управление позволяет обновлять конфигурацию журналирования в уже работающей программе. API также позволяет включать и отключать протоколирование для различных функциональных областей системы. Например, инженер технической поддержки может быть заинтересован в трассировке всех событий AWT, но не событий сокетов или управления памятью.
Указатели null
В общем случае, если в документации javadoc не указано иное, методы и конструкторы выбрасывают NullPointerException при передаче аргумента null. Единственное существенное исключение из этого правила — методы класса Logger, упрощающие ведение журналов (методы config, entering, exiting, fine, finer, finest, log, logp, logrb, severe, throwing и warning): они принимают значения null для всех аргументов, кроме первого аргумента Level (если он есть).
Связанная документация
Обзор потока управления см. в документе Обзор ведения журналов в Java
- Начиная с версии:
- 1.4
| Класс | Описание |
|---|---|
| ConsoleHandler | Этот Handler публикует записи журнала в System.err. |
| ErrorManager | Объекты ErrorManager можно подключать к обработчикам для обработки любых ошибок, возникающих в обработчике во время ведения журнала. |
| FileHandler | Простая регистрация в файле Handler. |
| Filter | Фильтр можно использовать для более точного контроля над тем, что попадает в журнал, помимо контроля, предоставляемого уровнями протоколирования. |
| Formatter | Форматировщик обеспечивает поддержку форматирования объектов LogRecord. |
| Handler | Объект Handler получает сообщения журнала от Logger и экспортирует их. |
| Level | Класс Level определяет набор стандартных уровней протоколирования, которые можно использовать для управления выводом журналов. |
| Logger | Объект Logger используется для регистрации сообщений определённого компонента системы или приложения. |
| LoggingMXBean | Устарело. |
| LoggingPermission | Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Это разрешение нельзя использовать для управления доступом к ресурсам, поскольку Security Manager больше не поддерживается. |
| LogManager | Существует единственный глобальный объект LogManager, используемый для поддержки общего состояния объектов Logger и служб ведения журналов. |
| LogRecord | Объекты LogRecord используются для передачи запросов на протоколирование между инфраструктурой ведения журналов и отдельными обработчиками журналов. |
| MemoryHandler | Handler, буферизующий запросы в кольцевом буфере в памяти. |
| SimpleFormatter | Выводит краткую сводку LogRecord в удобочитаемом формате. |
| SocketHandler | Простая сетевая регистрация Handler. |
| StreamHandler | Ведение журналов на основе потоков Handler. |
| XMLFormatter | Форматирует LogRecord в стандартный формат XML. |
© 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/package-summary.html
LoggingMXBeanбольше не являетсяplatform MXBeanи заменён наPlatformLoggingMXBean.