Spec-Zone.ru › OpenJDK 8

Класс LogManager

  • java.lang.Object
    • java.util.logging.LogManager

public class LogManager
extends Object

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

Этот объект LogManager:

  • Управляет иерархическим пространством имен объектов Logger. Все именованные логгеры хранятся в этом пространстве имен.
  • Управляет набором свойств управления логгированием. Это простые пары "ключ-значение", которые могут использоваться обработчиками и другими объектами логгирования для их конфигурации.

Глобальный объект LogManager можно получить с помощью LogManager.getLogManager(). Объект LogManager создается во время инициализации класса и впоследствии не может быть изменен.

При запуске класс LogManager определяется с помощью системного свойства java.util.logging.manager.

Класс LogManager определяет две необязательные системные свойства, которые позволяют управлять начальной конфигурацией:

  • "java.util.logging.config.class"
  • "java.util.logging.config.file"
Эти два свойства можно указать в командной строке для команды "java" или как определения системных свойств, передаваемые в JNI_CreateJavaVM.

Если свойство "java.util.logging.config.class" установлено, то значение свойства интерпретируется как имя класса. Данный класс будет загружен, объект будет создан, и конструктор этого объекта отвечает за чтение начальной конфигурации. (Этот объект может использовать другие системные свойства для управления своей конфигурацией.) Альтернативный класс конфигурации может использовать readConfiguration(InputStream) для определения свойств в LogManager.

Если свойство "java.util.logging.config.class" не установлено, то системное свойство "java.util.logging.config.file" может использоваться для указания файла свойств (в формате java.util.Properties). Начальная конфигурация логгирования будет читаться из этого файла.

Если ни одно из этих свойств не определено, то LogManager использует свою стандартную конфигурацию. Стандартная конфигурация обычно загружается из файла свойств "lib/logging.properties" в каталоге установки Java.

Свойства логгеров и обработчиков будут иметь имена, начинающиеся с имени обработчика или логгера, разделенного точкой.

Глобальные свойства логгирования могут включать:

  • Свойство "handlers". Оно определяет список имен классов обработчиков, разделенных пробелами или запятыми, для загрузки и регистрации обработчиков в качестве обработчиков для корневого логгера (логгер с именем ""). Каждое имя класса должно соответствовать классу Handler, имеющему конструктор по умолчанию. Обратите внимание, что эти обработчики могут создаваться лениво, при первом использовании.
  • Свойство "<logger>.handlers". Оно определяет список имен классов обработчиков, разделенных пробелами или запятыми, для загрузки и регистрации обработчиков для указанного логгера. Каждое имя класса должно соответствовать классу Handler, имеющему конструктор по умолчанию. Обратите внимание, что эти обработчики могут создаваться лениво, при первом использовании.
  • Свойство "<logger>.useParentHandlers". Это определяет булево значение. По умолчанию каждый логгер вызывает своего родителя помимо обработки сообщения логгирования, что часто приводит к обработке сообщений также корневым логгером. При установке этого свойства в false обработчик должен быть настроен для этого логгера, иначе сообщения логгирования не будут передаваться.
  • Свойство "config". Это свойство предназначено для выполнения произвольного кода конфигурации. Свойство определяет список имен классов, разделенных пробелами или запятыми. Для каждого указанного класса будет создан новый экземпляр. Конструктор по умолчанию каждого класса может выполнять произвольный код для обновления конфигурации логгирования, например, установки уровней логгеров, добавления обработчиков, добавления фильтров и т. д.

Обратите внимание, что все классы, загруженные во время конфигурации LogManager, сначала ищутся в системном пути класса перед любым пользовательским путем класса. Это включает класс LogManager, любые классы конфигурации и любые классы обработчиков.

Логгеры организованы в иерархию имен на основе их имен, разделенных точками. Таким образом, "a.b.c" является потомком "a.b", но "a.b1" и "a.b2" являются сверстниками.

Все свойства, имена которых заканчиваются на ".level", предполагается определяют уровни логгирования для логгеров. Таким образом, "foo.level" определяет уровень логгирования для логгера с именем "foo" и (рекурсивно) для любого из его потомков в иерархии имен. Уровни логгирования применяются в порядке их определения в файле свойств. Таким образом, настройки уровня для дочерних узлов в дереве должны следовать за настройками для их родителей. Свойство ".level" может использоваться для установки уровня для корня дерева.

Все методы объекта LogManager многопоточно-безопасны.

Since:
1.4

Поля

Модификатор и тип Поле и описание
static String LOGGING_MXBEAN_NAME

Строковое представление ObjectName для интерфейса управления для системы логгирования.

Конструкторы

Модификатор Конструктор и описание
protected LogManager()

Защищенный конструктор.

Методы

Модификатор и тип Метод и описание
boolean addLogger(Logger logger)

Добавление именованного логгера.

void addPropertyChangeListener(PropertyChangeListener l)

Устарело.

Зависимость от PropertyChangeListener создает значительное препятствие для будущей модулизации платформы Java. Этот метод будет удален в будущей версии. Глобальный LogManager может обнаруживать изменения в конфигурации логгирования, переопределяя метод readConfiguration.

void checkAccess()

Проверка, что текущий контекст доверен для изменения конфигурации логгирования.

Logger getLogger(String name)

Метод поиска именованного логгера.

Enumeration<String> getLoggerNames()

Получение перечисления известных имен логгеров.

static LoggingMXBean getLoggingMXBean()

Возвращает LoggingMXBean для управления логгерами.

static LogManager getLogManager()

Возвращает глобальный объект LogManager.

String getProperty(String name)

Получение значения свойства логгирования.

void readConfiguration()

Переинициализация свойств логгирования и повторное чтение конфигурации логгирования.

void readConfiguration(InputStream ins)

Переинициализация свойств логгирования и повторное чтение конфигурации логгирования из данного потока, который должен быть в формате java.util.Properties.

void removePropertyChangeListener(PropertyChangeListener l)

Устарело.

Зависимость от PropertyChangeListener создает значительное препятствие для будущей модулизации платформы Java. Этот метод будет удален в будущей версии. Глобальный LogManager может обнаруживать изменения в конфигурации логгирования, переопределяя метод readConfiguration.

void reset()

Сброс конфигурации логгирования.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

LOGGING_MXBEAN_NAME

public static final String LOGGING_MXBEAN_NAME

Строковое представление ObjectName для интерфейса управления механизмом регистрации событий.

С момента:
1.5
См. также:
PlatformLoggingMXBean, LoggingMXBean, Значения константных полей

Конструкторы

LogManager

protected LogManager()

Защищённый конструктор. Он защищён, чтобы приложения-контейнеры (например, контейнеры J2EE) могли наследоваться от объекта. Он не является общедоступным, так как предполагается, что существует только один объект LogManager, значение которого извлекается путём вызова LogManager.getLogManager.

Методы

getLogManager

public static LogManager getLogManager()

Возвращает глобальный объект LogManager.

Возвращает:
глобальный объект LogManager

addPropertyChangeListener

@Deprecated
public void addPropertyChangeListener(PropertyChangeListener l)
                                           throws SecurityException

Устарело. Зависимость от PropertyChangeListener создаёт значительные препятствия для будущей модульной архитектуры платформы Java. Этот метод будет удалён в будущей версии. Глобальный LogManager может обнаруживать изменения в конфигурации регистрации, переопределяя метод readConfiguration.

Добавляет обработчик событий, который вызывается при повторном чтении свойств регистрации.

Добавление нескольких экземпляров одного и того же обработчика событий приводит к нескольким записям в таблице обработчиков событий свойств.

ПРЕДУПРЕЖДЕНИЕ: Этот метод исключён из этого класса во всех подмножествах профилей Java SE, не включающих пакет java.beans.

Параметры:
l - обработчик событий
Исключения:
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет разрешения LoggingPermission("control").
NullPointerException - если PropertyChangeListener равен null.

removePropertyChangeListener

@Deprecated
public void removePropertyChangeListener(PropertyChangeListener l)
                                              throws SecurityException

Устарело. Зависимость от PropertyChangeListener создаёт значительные препятствия для будущей модульной архитектуры платформы Java. Этот метод будет удалён в будущей версии. Глобальный LogManager может обнаруживать изменения в конфигурации регистрации, переопределяя метод readConfiguration.

Удаляет обработчик событий для событий изменения свойств.

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

Возвращает без ошибок, если указанный обработчик не найден.

ПРЕДУПРЕЖДЕНИЕ: Этот метод исключён из этого класса во всех подмножествах профилей Java SE, не включающих пакет java.beans.

Параметры:
l - обработчик событий (может быть null)
Исключения:
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет разрешения LoggingPermission("control").

addLogger

public boolean addLogger(Logger logger)

Добавляет регистратор с указанным именем. Этот метод ничего не делает и возвращает false, если регистратор с таким же именем уже зарегистрирован.

Методы фабрики Logger вызывают этот метод для регистрации каждого вновь созданного Logger.

Приложение должно сохранять собственную ссылку на объект Logger, чтобы избежать его сборки мусора. LogManager может хранить только слабую ссылку.

Параметры:
logger - новый регистратор.
Возвращает:
true, если аргумент logger был успешно зарегистрирован, false, если регистратор с таким именем уже существует.
Исключения:
NullPointerException - если имя регистратора равно null.

getLogger

public Logger getLogger(String name)

Метод для поиска регистратора по имени.

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

Параметры:
name - имя регистратора
Возвращает:
соответствующий регистратор или null, если он не найден

getLoggerNames

public Enumeration<String> getLoggerNames()

Получает перечисление известных имён регистраторов.

Примечание: регистраторы могут добавляться динамически при загрузке новых классов. Этот метод сообщает только о регистраторах, которые в настоящее время зарегистрированы. Также следует учесть, что этот метод возвращает только имя регистратора, а не сильную ссылку на сам регистратор. Возвращённая строка не предотвращает сборку мусора регистратора. В частности, если возвращённое имя передано в LogManager.getLogger(), вызывающий метод должен проверить значение возвращаемое LogManager.getLogger() на null, чтобы правильно обработать случай, когда регистратор был собран мусором за время, прошедшее с момента возврата его имени этим методом.

Возвращает:
перечисление строк имён регистраторов

readConfiguration

public void readConfiguration()
                       throws IOException,
                              SecurityException

Переинициализирует свойства регистрации и повторно считывает конфигурацию регистрации.

Для поиска свойств конфигурации используются те же правила, что и при запуске. Таким образом, как правило, свойства регистрации повторно считываются из того же файла, который использовался при запуске.

Любые определения уровней регистрации в новом файле конфигурации будут применяться с помощью Logger.setLevel(), если целевой Logger существует.

После считывания свойств будет сгенерировано событие PropertyChangeEvent.

Исключения:
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет разрешения LoggingPermission("control").
IOException - если при чтении конфигурации возникли проблемы с вводом-выводом.

reset

public void reset()
           throws SecurityException

Сбросить конфигурацию регистрации.

Для всех именованных регистраторов операция сброса удаляет и закрывает все обработчики и (за исключением корневого регистратора) устанавливает уровень в null. Уровень корневого регистратора устанавливается в Level.INFO.

Исключения:
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет разрешения LoggingPermission("control").

readConfiguration

public void readConfiguration(InputStream ins)
                       throws IOException,
                              SecurityException

Переинициализирует свойства регистрации и повторно считывает конфигурацию регистрации из данного потока, который должен быть в формате java.util.Properties. После считывания свойств будет сгенерировано событие PropertyChangeEvent.

Любые определения уровней регистрации в новом файле конфигурации будут применяться с помощью Logger.setLevel(), если целевой Logger существует.

Параметры:
ins - поток для чтения свойств
Исключения:
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет разрешения LoggingPermission("control").
IOException - если при чтении из потока возникли проблемы.

getProperty

public String getProperty(String name)

Получить значение свойства регистрации. Метод возвращает null, если свойство не найдено.

Параметры:
name - имя свойства
Возвращает:
значение свойства

checkAccess

public void checkAccess()
                 throws SecurityException

Проверить, что текущий контекст надёжен для изменения конфигурации регистрации. Это требует LoggingPermission("control").

Если проверка завершается неудачно, мы бросаем SecurityException, в противном случае возвращаем нормально.

Исключения:
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет разрешения LoggingPermission("control").

getLoggingMXBean

public static LoggingMXBean getLoggingMXBean()

Возвращает LoggingMXBean для управления регистраторами. Альтернативный способ управления регистраторами — через интерфейс PlatformLoggingMXBean, который можно получить, вызвав:

PlatformLoggingMXBean logging = ManagementFactory.getPlatformMXBean(PlatformLoggingMXBean.class);

Возвращает:
объект LoggingMXBean.
С момента:
1.5
См. также:
PlatformLoggingMXBean

© 1993, 2020, 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