Spec-Zone.ru › OpenJDK 25

Класс 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

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/System.LoggerFinder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API