Spec-Zone.ru › OpenJDK 27

Класс System.LoggerFinder

java.lang.Object
java.lang.System.LoggerFinder
Внешний класс:
System
public abstract static class System.LoggerFinder extends Object
Служба LoggerFinder отвечает за создание, управление и настройку регистраторов для используемой ею базовой платформы. Фабрика регистраторов — это конкретная реализация данного класса, имеющая конструктор без аргументов и реализующая абстрактные методы, определённые в этом классе. Регистраторы, возвращаемые фабрикой регистраторов, могут перенаправлять сообщения журнала в поддерживаемую этим поставщиком систему журналирования. При каждом запуске Java Runtime поддерживается единственный экземпляр LoggerFinder для всей системы, который загружается следующим образом:
  • Сначала с помощью средства ServiceLoader и системного загрузчика классов выполняется поиск пользовательского поставщика LoggerFinder.
  • Если поставщик LoggerFinder не найден, используется системная реализация LoggerFinder по умолчанию.

Приложение может заменить систему журналирования даже при наличии модуля java.logging, просто предоставив и объявив реализацию службы System.LoggerFinder.

Реализация по умолчанию

Системная реализация LoggerFinder по умолчанию использует java.util.logging в качестве базовой платформы, если присутствует модуль java.logging. Она возвращает экземпляр регистратора, который перенаправляет сообщения журнала в java.util.logging.Logger. В противном случае, если модуль java.logging отсутствует, реализация по умолчанию возвращает простой экземпляр регистратора, который перенаправляет сообщения журнала уровня INFO и выше в консоль (System.err).

Настройка журналирования

Экземпляры Logger, полученные с помощью фабричных методов LoggerFinder, не могут напрямую настраиваться приложением. За настройку отвечает используемая базовая система журналирования; обычно для этого необходимо применять API, специфичные для этой системы.

Сведения о настройке журналирования для реализации LoggerFinder по умолчанию, использующей java.util.logging в качестве базовой платформы, см. в разделе java.util.logging. Для реализации LoggerFinder по умолчанию, возвращающей простые регистраторы при отсутствии модуля java.logging, настройка зависит от реализации.

Обычно приложение, использующее платформу журналирования, регистрирует сообщения с помощью фасада регистратора, определённого (или поддерживаемого) этой платформой. Приложения, которым требуется использовать внешнюю платформу, должны регистрировать сообщения через связанный с ней фасад.

Системный класс, которому необходимо регистрировать сообщения, обычно получает экземпляр System.Logger для перенаправления сообщений в выбранную приложением систему журналирования.

Библиотеки и классы, которым нужны только регистраторы для создания сообщений журнала, не должны пытаться настраивать регистраторы самостоятельно, поскольку это создаст зависимость от конкретной реализации службы LoggerFinder.

Уровни сообщений и их сопоставление с уровнями базовой платформы

Фабрика регистраторов отвечает за сопоставление System.Logger.Level с уровнем, поддерживаемым используемой ею системой журналирования.
Фабрика LoggerFinder по умолчанию, использующая java.util.logging в качестве базовой платформы, сопоставляет уровни System.Logger с уровнями java.util.logging соответствующей степени важности — как описано в Logger.Level.

С версии:
9
См. также:
  • System
  • System.Logger

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

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

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

Модификатор и тип Метод Описание
System.Logger getLocalizedLogger(String name, ResourceBundle bundle, Module module)
Возвращает локализуемый экземпляр Logger для заданного module.
abstract System.Logger getLogger(String name, Module module)
Возвращает экземпляр Logger для заданного module.
static System.LoggerFinder getLoggerFinder()
Возвращает экземпляр LoggerFinder.

Методы, объявленные в классе 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, либо до истечения заданного промежутка реального времени.

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

LoggerFinder

protected LoggerFinder()
Создаёт новый экземпляр LoggerFinder.
Примечание по реализации:
Рекомендуется, чтобы реализация службы LoggerFinder не выполняла длительную инициализацию в конструкторе, чтобы избежать возможной взаимоблокировки или циклической загрузки классов при создании экземпляра поставщика службы.

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

getLogger

public abstract System.Logger getLogger(String name, Module module)
Возвращает экземпляр Logger для заданного module.
Параметры:
name — имя регистратора.
module — модуль, для которого запрашивается регистратор.
Возвращает:
объект logger, пригодный для использования в заданном модуле.
Вызывает исключение:
NullPointerException — если name имеет значение null или module имеет значение null.

getLocalizedLogger

public System.Logger getLocalizedLogger(String name, ResourceBundle bundle, Module module)
Возвращает локализуемый экземпляр Logger для заданного module. Возвращаемый регистратор использует предоставленный пакет ресурсов для локализации сообщений.
Требования к реализации:
По умолчанию этот метод вызывает this.getLogger(name, module) для получения регистратора, а затем оборачивает его в экземпляр System.Logger, перенаправляя все методы, не принимающие ResourceBundle в качестве параметра, на соответствующие методы, которые его принимают, передавая заданный bundle для локализации. Так, например, вызов Logger.log(Level.INFO, msg) в итоге приводит к вызову Logger.log(Level.INFO, bundle, msg, (Object[])null) для обёрнутого экземпляра регистратора. Однако следует учитывать, что по умолчанию строковые сообщения, возвращаемые Supplier<String>, не локализуются, поскольку предполагается, что такие строки уже являются сформированными сообщениями, а не ключами в пакете ресурсов.

Реализация LoggerFinder может переопределить этот метод, например, если используемая базовая система журналирования предоставляет собственный механизм локализации сообщений журнала. В таком случае LoggerFinder может возвращать регистратор, напрямую использующий механизм, предоставляемый этой системой.

Параметры:
name — имя регистратора.
bundle — пакет ресурсов; может иметь значение null.
module — модуль, для которого запрашивается регистратор.
Возвращает:
экземпляр Logger, который будет использовать предоставленный пакет ресурсов для локализации сообщений.
Вызывает исключение:
NullPointerException — если name имеет значение null или module имеет значение null.

getLoggerFinder

public static System.LoggerFinder getLoggerFinder()
Возвращает экземпляр LoggerFinder. В Java Runtime существует один-единственный экземпляр LoggerFinder для всей системы. Сведения о том, как обнаруживается и загружается реализация LoggerFinder, см. в спецификации класса.
Возвращает:
экземпляр LoggerFinder.

Сообщить об ошибке или предложить улучшение
Дополнительные сведения об 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