Spec-Zone.ru › OpenJDK 24

Класс System.LoggerFinder

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

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

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

Системная реализация по умолчанию LoggerFinder использует java.util.logging в качестве бэкенд-фреймворка, когда присутствует модуль java.logging. Она возвращает экземпляр логгера logger, который будет передавать сообщения об ошибках в 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.

Уровни сообщений и сопоставление с уровнями бэкенда

Logger finder отвечает за сопоставление уровня 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.

Методы, объявленные в классе java.lang.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 - модуль, для которого запрашивается логгер.
Возвращает:
a 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.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/System.LoggerFinder.html

Spec-Zone.ru

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