Класс Logger
public class Logger extends Object
Объекты Logger можно получить, вызвав один из фабричных методов getLogger. Эти методы либо создают новый Logger, либо возвращают подходящий существующий Logger. Важно отметить, что Logger, возвращённый одним из фабричных методов getLogger, может быть удалён сборщиком мусора в любой момент, если на него не сохраняется сильная ссылка.
Сообщения журнала передаются зарегистрированным объектам Handler, которые могут перенаправлять их в различные места назначения, включая консоли, файлы, журналы ОС и т. д.
Каждый Logger отслеживает «родительский» Logger — ближайший существующий предок в пространстве имён Logger.
С каждым Logger связан «уровень» Level. Он задаёт минимальный уровень, который учитывает этот регистратор. Если для уровня Logger задано значение null, то его эффективный уровень наследуется от родительского регистратора, который, в свою очередь, может рекурсивно получить его от своего родителя и так далее вверх по дереву.
Уровень журнала можно настроить с помощью свойств из файла конфигурации журналирования, как описано в документации класса LogManager. Однако его также можно динамически изменить вызовами метода Logger.setLevel. Если уровень регистратора изменён, это изменение может повлиять и на дочерние регистраторы, поскольку любой дочерний регистратор, для которого уровень задан как null, наследует свой эффективный уровень от родителя.
При каждом вызове метода журналирования Logger сначала выполняет быструю проверку уровня запроса (например, SEVERE или FINE) относительно эффективного уровня журнала регистратора. Если уровень запроса ниже уровня журнала, вызов журналирования немедленно завершается.
После прохождения этой первоначальной (быстрой) проверки Logger создаёт LogRecord для описания сообщения журнала. Затем он вызывает Filter (если он задан), чтобы выполнить более подробную проверку того, следует ли публиковать запись. Если проверка пройдена, LogRecord передаётся обработчикам Handler для вывода. По умолчанию регистраторы также передают сообщения обработчикам родительских регистраторов, рекурсивно вверх по дереву.
С каждым Logger может быть связан ResourceBundle. ResourceBundle можно указать по имени с помощью фабричного метода getLogger(java.lang.String, java.lang.String) или по значению с помощью метода setResourceBundle. Этот пакет будет использоваться для локализации сообщений журнала. Если у Logger нет собственного ResourceBundle или имени пакета ресурсов, он будет наследовать ResourceBundle или имя пакета ресурсов от родителя, рекурсивно вверх по дереву.
Большинство методов вывода сообщений регистратора принимают аргумент «msg». Этот аргумент может быть как обычным значением, так и ключом локализации. При форматировании, если у регистратора есть (или он наследует) пакет локализации ResourceBundle и если в ResourceBundle имеется соответствие для строки msg, строка msg заменяется локализованным значением. В противном случае используется исходная строка msg. Обычно средства форматирования используют форматирование параметров в стиле java.text.MessageFormat, поэтому, например, строка формата "{0} {1}" форматирует два параметра как строки.
В альтернативном варианте группа методов принимает аргумент «msgSupplier» вместо аргумента «msg». Эти методы принимают функцию Supplier<String>, которая вызывается для формирования нужного сообщения журнала только тогда, когда сообщение действительно должно быть записано с учётом эффективного уровня журнала. Это позволяет избежать ненужного формирования сообщения. Например, если разработчик хочет записывать состояние работоспособности системы для диагностики, то при использовании версии, принимающей String, код будет выглядеть так:
class DiagnosisMessages {
static String systemHealthStatus() {
// collect system health information
...
}
}
...
logger.log(Level.FINER, DiagnosisMessages.systemHealthStatus());
При использовании приведённого выше кода состояние работоспособности будет собираться без необходимости, даже если уровень журнала FINER отключён. В версии, принимающей Supplier, как показано ниже, состояние будет собираться только при включённом уровне журнала FINER.
logger.log(Level.FINER, DiagnosisMessages::systemHealthStatus);
При поиске ResourceBundle регистратор сначала проверяет, был ли пакет задан с помощью setResourceBundle, и только затем — было ли указано имя пакета ресурсов через фабричный метод getLogger. Если ResourceBundle или имя пакета ресурсов не найдены, используется ближайший ResourceBundle или имя пакета ресурсов, унаследованные от родительского дерева.
Если ResourceBundle было унаследовано или задано с помощью метода setResourceBundle, будет использоваться это ResourceBundle. В противном случае, если регистратор имеет или унаследовал только имя пакета ресурсов, это имя будет сопоставлено с объектом ResourceBundle с использованием локали по умолчанию на момент журналирования.
При сопоставлении имён пакетов ресурсов с объектами ResourceBundle регистратор сначала пытается использовать контекстный загрузчик классов потока, чтобы сопоставить указанное имя пакета ресурсов с ResourceBundle. Если контекстный загрузчик классов потока равен null, вместо него используется системный загрузчик классов. Если ResourceBundle по-прежнему не найден, используется загрузчик классов первого вызывающего фабричный метод getLogger.
Форматирование (включая локализацию) выполняется выходным обработчиком Handler, который обычно вызывает Formatter.
Обратите внимание, что форматирование не обязательно выполняется синхронно. Оно может быть отложено до фактической записи LogRecord во внешний приёмник.
Методы журналирования делятся на пять основных категорий:
Набор методов «log», принимающих уровень журнала, строку сообщения и, при необходимости, параметры этой строки.
Набор методов «logp» (от «log precise» — «точное журналирование»), подобных методам «log», но дополнительно принимающих явные имена исходного класса и метода.
Набор методов «logrb» (от «log with resource bundle» — «журналирование с пакетом ресурсов»), подобных методам «logp», но дополнительно принимающих явный объект пакета ресурсов для локализации сообщения журнала.
Вспомогательные методы для регистрации входа в методы (методы «entering»), возврата из методов (методы «exiting») и выбрасывания исключений (методы «throwing»).
Наконец, набор вспомогательных методов для самых простых случаев, когда разработчику нужно просто записать строку на заданном уровне журнала. Эти методы названы в соответствии со стандартными именами уровней Level («severe», «warning», «info» и т. д.) и принимают один аргумент — строку сообщения.
Для методов, не принимающих явные имена исходного класса и метода, платформа журналирования попытается определить, какой класс и метод вызвали метод журналирования. Однако важно понимать, что автоматически определённая информация может быть лишь приблизительной (или даже совершенно неверной!). Виртуальным машинам разрешено выполнять обширные оптимизации при JIT-компиляции, вплоть до полного удаления кадров стека, из-за чего надёжно определить вызывающий класс и метод становится невозможно.
Все методы Logger являются потокобезопасными.
Сведения о создании подклассов: Обратите внимание, что класс LogManager может предоставлять собственную реализацию именованных регистраторов Logger для любой точки пространства имён. Поэтому любые подклассы Logger (если они не реализованы совместно с новым классом LogManager) должны получать экземпляр Logger из класса LogManager и делегировать этому экземпляру такие операции, как «isLoggable» и «log(LogRecord)». Чтобы перехватывать весь вывод журнала, подклассам достаточно переопределить метод log(LogRecord). Все остальные методы журналирования реализованы как вызовы этого метода log(LogRecord).
- Начиная с:
- 1.4
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Logger |
global |
Устарело. Инициализация этого поля может привести к взаимоблокировкам. |
static final String |
GLOBAL_LOGGER_NAME |
GLOBAL_LOGGER_NAME — имя глобального регистратора. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Защищённый метод для создания регистратора именованной подсистемы. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addHandler |
Добавляет обработчик журнала Handler для получения сообщений журнала. |
void |
config |
Записывает сообщение уровня CONFIG. |
void |
config |
Записывает сообщение уровня CONFIG, которое формируется только в том случае, если уровень журналирования позволяет фактически записать это сообщение. |
void |
entering |
Записывает вход в метод. |
void |
entering |
Записывает вход в метод с одним параметром. |
void |
entering |
Записывает вход в метод с массивом параметров. |
void |
exiting |
Записывает возврат из метода. |
void |
exiting |
Записывает возврат из метода с объектом-результатом. |
void |
fine |
Записывает сообщение уровня FINE. |
void |
fine |
Записывает сообщение уровня FINE, которое формируется только в том случае, если уровень журналирования позволяет фактически записать это сообщение. |
void |
finer |
Записывает сообщение уровня FINER. |
void |
finer |
Записывает сообщение уровня FINER, которое формируется только в том случае, если уровень журналирования позволяет фактически записать это сообщение. |
void |
finest |
Записывает сообщение уровня FINEST. |
void |
finest |
Записывает сообщение уровня FINEST, которое формируется только в том случае, если уровень журналирования позволяет фактически записать это сообщение. |
static Logger |
getAnonymousLogger() |
Создаёт анонимный Logger. |
static Logger |
getAnonymousLogger |
Создаёт анонимный Logger. |
Filter |
getFilter() |
Возвращает текущий фильтр этого Logger. |
static final Logger |
getGlobal() |
Возвращает объект глобального регистратора с именем Logger.GLOBAL_LOGGER_NAME. |
Handler[] |
getHandlers() |
Возвращает обработчики Handler, связанные с этим регистратором. |
Level |
getLevel() |
Возвращает уровень журнала Level, заданный для этого Logger. |
static Logger |
getLogger |
Находит или создаёт регистратор именованной подсистемы. |
static Logger |
getLogger |
Находит или создаёт регистратор именованной подсистемы. |
String |
getName() |
Возвращает имя этого регистратора. |
Logger |
getParent() |
Возвращает родительский Logger. |
ResourceBundle |
getResourceBundle() |
Получает пакет ресурсов локализации для этого регистратора. |
String |
getResourceBundleName() |
Получает имя пакета ресурсов локализации для этого регистратора. |
boolean |
getUseParentHandlers() |
Определяет, передаёт ли этот регистратор свой вывод родительскому регистратору. |
void |
info |
Записывает сообщение уровня INFO. |
void |
info |
Записывает сообщение уровня INFO, которое формируется только в том случае, если уровень журналирования позволяет фактически записать это сообщение. |
boolean |
isLoggable |
Проверяет, будет ли этим регистратором фактически записано сообщение заданного уровня. |
void |
log |
Записывает сообщение без аргументов. |
void |
log |
Записывает сообщение с одним параметром-объектом. |
void |
log |
Записывает сообщение с массивом аргументов-объектов. |
void |
log |
Записывает сообщение с дополнительной информацией об объекте Throwable. |
void |
log |
Записывает лениво формируемое сообщение с дополнительной информацией об объекте Throwable. |
void |
log |
Записывает сообщение, которое формируется только в том случае, если уровень журналирования позволяет фактически записать это сообщение. |
void |
log |
Записывает LogRecord. |
void |
logp |
Записывает сообщение без аргументов, указывая исходный класс и метод. |
void |
logp |
Записывает сообщение с одним параметром-объектом, указывая исходный класс и метод. |
void |
logp |
Записывает сообщение с массивом аргументов-объектов, указывая исходный класс и метод. |
void |
logp |
Записывает сообщение с дополнительной информацией об объекте Throwable, указывая исходный класс и метод. |
void |
logp |
Записывает лениво формируемое сообщение с дополнительной информацией об объекте Throwable, указывая исходный класс и метод. |
void |
logp |
Записывает лениво формируемое сообщение без аргументов, указывая исходный класс и метод. |
void |
logrb |
Устарело. |
void |
logrb |
Устарело. |
void |
logrb |
Устарело. |
void |
logrb |
Устарело. |
void |
logrb |
Записывает сообщение, указывая исходный класс, метод и пакет ресурсов, а также необязательный список параметров сообщения. |
void |
logrb |
Записывает сообщение с дополнительной информацией об объекте Throwable, указывая исходный класс, метод и пакет ресурсов. |
void |
logrb |
Записывает сообщение, указывая исходный класс, метод и пакет ресурсов, а также необязательный список параметров сообщения. |
void |
logrb |
Записывает сообщение с дополнительной информацией об объекте Throwable, указывая исходный класс, метод и пакет ресурсов. |
void |
removeHandler |
Удаляет обработчик журнала Handler. |
void |
setFilter |
Задаёт фильтр для управления выводом этого Logger. |
void |
setLevel |
Задаёт уровень журнала, определяющий, сообщения каких уровней будут записываться этим регистратором. |
void |
setParent |
Задаёт родительский Logger. |
void |
setResourceBundle |
Устанавливает пакет ресурсов для этого регистратора. |
void |
setUseParentHandlers |
Указывает, должен ли этот регистратор передавать свой вывод родительскому Logger. |
void |
severe |
Записывает сообщение уровня SEVERE. |
void |
severe |
Записывает сообщение уровня SEVERE, которое формируется только в том случае, если уровень журналирования позволяет фактически записать это сообщение. |
void |
throwing |
Записывает информацию о выбрасываемом исключении. |
void |
warning |
Записывает сообщение уровня WARNING. |
void |
warning |
Записывает сообщение уровня WARNING, которое формируется только в том случае, если уровень журналирования позволяет фактически записать это сообщение. |
Подробное описание полей
GLOBAL_LOGGER_NAME
public static final String GLOBAL_LOGGER_NAME
- Начиная с:
- 1.6
- См. также:
global
@Deprecated public static final Logger global
Logger.getGlobal(). Для совместимости со старыми версиями JDK, в которых Logger.getGlobal() недоступен, используйте вызов Logger.getLogger(Logger.GLOBAL_LOGGER_NAME) или Logger.getLogger("global").Подробное описание конструкторов
Logger
protected Logger(String name, String resourceBundleName)
Изначально для регистратора задаётся уровень null, а для useParentHandlers устанавливается значение true.
- Параметры:
-
name— имя регистратора. Оно должно состоять из компонентов, разделённых точками, и обычно должно основываться на имени пакета или класса подсистемы, например java.net или javax.swing. Для анонимных регистраторов оно может быть null. -
resourceBundleName— имя ResourceBundle, используемого для локализации сообщений этого регистратора. Может быть null, если локализация сообщений не требуется. - Исключения:
-
MissingResourceException— если resourceBundleName не равен null и соответствующий ресурс не найден.
Подробное описание методов
getGlobal
public static final Logger getGlobal()
- Возвращает:
- объект глобального регистратора
- Начиная с:
- 1.7
getLogger
public static Logger getLogger(String name)
Если создаётся новый регистратор, его уровень ведения журнала настраивается на основе конфигурации LogManager, а также настраивается отправка вывода журнала обработчикам родительского регистратора. Регистратор регистрируется в глобальном пространстве имён LogManager.
Примечание. LogManager может хранить только слабую ссылку на созданный регистратор Logger. Важно понимать, что ранее созданный Logger с заданным именем может быть собран сборщиком мусора в любой момент, если на него нет сильной ссылки. В частности, это означает, что два последовательных вызова, например getLogger("MyLogger").log(...), могут использовать разные объекты Logger с именем "MyLogger", если в программе нет другой сильной ссылки на Logger с именем "MyLogger".
- Параметры:
-
name— имя регистратора. Оно должно состоять из компонентов, разделённых точками, и обычно должно основываться на имени пакета или класса подсистемы, например java.net или javax.swing - Возвращает:
- подходящий Logger
- Исключения:
-
NullPointerException— если имя равно null.
getLogger
public static Logger getLogger(String name, String resourceBundleName)
Если создаётся новый регистратор, его уровень ведения журнала настраивается на основе LogManager, а также настраивается отправка вывода журнала обработчикам родительского регистратора. Регистратор регистрируется в глобальном пространстве имён LogManager.
Примечание. LogManager может хранить только слабую ссылку на созданный регистратор Logger. Важно понимать, что ранее созданный Logger с заданным именем может быть собран сборщиком мусора в любой момент, если на него нет сильной ссылки. В частности, это означает, что два последовательных вызова, например getLogger("MyLogger", ...).log(...), могут использовать разные объекты Logger с именем "MyLogger", если в программе нет другой сильной ссылки на Logger с именем "MyLogger".
Если именованный Logger уже существует и ещё не имеет ресурса локализации, используется заданное имя пакета ресурсов. Если именованный Logger уже существует и имеет другое имя пакета ресурсов, выбрасывается IllegalArgumentException.
- Параметры:
-
name— имя регистратора. Оно должно состоять из компонентов, разделённых точками, и обычно должно основываться на имени пакета или класса подсистемы, например java.net или javax.swing -
resourceBundleName— имя ResourceBundle, используемого для локализации сообщений этого регистратора. Может бытьnull, если локализация сообщений не требуется. - Возвращает:
- подходящий Logger
- Исключения:
-
MissingResourceException— если resourceBundleName не равен null и соответствующий ресурс не найден. -
IllegalArgumentException— если Logger уже существует и использует другое имя пакета ресурсов; или еслиresourceBundleNameравенnull, но для именованного регистратора задан пакет ресурсов. -
NullPointerException— если имя равно null.
getAnonymousLogger
public static Logger getAnonymousLogger()
Этот фабричный метод предназначался главным образом для использования в апплетах. Поскольку полученный Logger является анонимным, создавший его класс может хранить его в закрытом доступе. Благодаря этому отпадала необходимость в обычных проверках безопасности, что, в свою очередь, позволяло недоверенному коду апплета изменять состояние управления Logger. Например, апплет мог вызвать setLevel или addHandler для анонимного Logger.
Несмотря на то, что новый регистратор является анонимным, в качестве его родителя задаётся корневой регистратор (""). Это означает, что по умолчанию он наследует эффективный уровень и обработчики корневого регистратора.
- Возвращает:
- созданный закрытый Logger
getAnonymousLogger
public static Logger getAnonymousLogger(String resourceBundleName)
Этот фабричный метод предназначался главным образом для использования в апплетах. Поскольку полученный Logger является анонимным, создавший его класс может хранить его в закрытом доступе. Благодаря этому отпадала необходимость в обычных проверках безопасности, что, в свою очередь, позволяло недоверенному коду апплета изменять состояние управления Logger. Например, апплет мог вызвать setLevel или addHandler для анонимного Logger.
Несмотря на то, что новый регистратор является анонимным, в качестве его родителя задаётся корневой регистратор (""). Это означает, что по умолчанию он наследует эффективный уровень и обработчики корневого регистратора.
- Параметры:
-
resourceBundleName— имя ResourceBundle, используемого для локализации сообщений этого регистратора. Может быть null, если локализация сообщений не требуется. - Возвращает:
- созданный закрытый Logger
- Исключения:
-
MissingResourceException— если resourceBundleName не равен null и соответствующий ресурс не найден.
getResourceBundle
public ResourceBundle getResourceBundle()
ResourceBundle, заданный методом setResourceBundle или сопоставленный с именем пакета ресурсов, заданным фабричным методом getLogger, для текущей локали по умолчанию. Обратите внимание: если результат равен
null, Logger будет использовать пакет ресурсов или имя пакета ресурсов, унаследованные от родителя.- Возвращает:
- пакет локализации (может быть
null)
getResourceBundleName
public String getResourceBundleName()
getLogger, либо базовое имя ResourceBundle, заданного методом setResourceBundle. Обратите внимание: если результат равен
null, Logger будет использовать пакет ресурсов или имя пакета ресурсов, унаследованные от родителя.- Возвращает:
- имя пакета локализации (может быть
null)
setFilter
public void setFilter(Filter newFilter)
После прохождения первоначальной проверки "level" Logger вызывает этот Filter, чтобы проверить, действительно ли следует опубликовать запись журнала.
- Параметры:
-
newFilter— объект фильтра (может быть null)
getFilter
public Filter getFilter()
- Возвращает:
- объект фильтра (может быть null)
log
public void log(LogRecord record)
Все остальные методы ведения журнала этого класса вызывают этот метод для непосредственного выполнения записи. Подклассы могут переопределить этот единственный метод, чтобы перехватывать все действия по ведению журнала.
- Параметры:
-
record— публикуемая LogRecord
log
public void log(Level level, String msg)
Если регистратор в данный момент включён для заданного уровня сообщения, указанное сообщение передаётся всем зарегистрированным выходным объектам Handler.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
msg— строка сообщения (или ключ в каталоге сообщений)
log
public void log(Level level, Supplier<String> msgSupplier)
Если регистратор в данный момент включён для заданного уровня сообщения, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным выходным объектам Handler.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
msgSupplier— функция, которая при вызове формирует нужное сообщение журнала - Начиная с:
- 1.8
log
public void log(Level level, String msg, Object param1)
Если регистратор в данный момент включён для заданного уровня сообщения, создаётся соответствующая LogRecord и передаётся всем зарегистрированным выходным объектам Handler.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
msg— строка сообщения (или ключ в каталоге сообщений) -
param1— параметр сообщения
log
public void log(Level level, String msg, Object[] params)
Если регистратор в данный момент включён для заданного уровня сообщения, создаётся соответствующая LogRecord и передаётся всем зарегистрированным выходным объектам Handler.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
msg— строка сообщения (или ключ в каталоге сообщений) -
params— массив параметров сообщения
log
public void log(Level level, String msg, Throwable thrown)
Если регистратор в данный момент включён для заданного уровня сообщения, указанные аргументы сохраняются в LogRecord, которая передаётся всем зарегистрированным выходным обработчикам.
Обратите внимание: переданный объект сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому выходные форматтеры обрабатывают его особым образом и не считают параметром форматирования свойства message объекта LogRecord.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
msg— строка сообщения (или ключ в каталоге сообщений) -
thrown— Throwable, связанный с сообщением журнала.
log
public void log(Level level, Throwable thrown, Supplier<String> msgSupplier)
Если регистратор в данный момент включён для заданного уровня сообщения, сообщение создаётся вызовом предоставленной функции-поставщика. Затем сообщение и заданный Throwable сохраняются в LogRecord, которая передаётся всем зарегистрированным выходным обработчикам.
Обратите внимание: переданный объект сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому выходные форматтеры обрабатывают его особым образом и не считают параметром форматирования свойства message объекта LogRecord.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
thrown— Throwable, связанный с сообщением журнала. -
msgSupplier— функция, которая при вызове формирует нужное сообщение журнала - Начиная с:
- 1.8
logp
public void logp(Level level, String sourceClass, String sourceMethod, String msg)
Если регистратор в данный момент включён для заданного уровня сообщения, указанное сообщение передаётся всем зарегистрированным выходным объектам Handler.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
msg— строка сообщения (или ключ в каталоге сообщений)
logp
public void logp(Level level, String sourceClass, String sourceMethod, Supplier<String> msgSupplier)
Если регистратор в данный момент включён для заданного уровня сообщения, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным выходным объектам Handler.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
msgSupplier— функция, которая при вызове формирует нужное сообщение журнала - Начиная с:
- 1.8
logp
public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object param1)
Если регистратор в данный момент включён для заданного уровня сообщения, создаётся соответствующая LogRecord и передаётся всем зарегистрированным выходным объектам Handler.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
msg— строка сообщения (или ключ в каталоге сообщений) -
param1— параметр сообщения журнала.
logp
public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object[] params)
Если регистратор в данный момент включён для заданного уровня сообщения, создаётся соответствующая LogRecord и передаётся всем зарегистрированным выходным объектам Handler.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
msg— строка сообщения (или ключ в каталоге сообщений) -
params— массив параметров сообщения
logp
public void logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown)
Если регистратор в данный момент включён для заданного уровня сообщения, указанные аргументы сохраняются в LogRecord, которая передаётся всем зарегистрированным выходным обработчикам.
Обратите внимание: переданный объект сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому выходные форматтеры обрабатывают его особым образом и не считают параметром форматирования свойства message объекта LogRecord.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
msg— строка сообщения (или ключ в каталоге сообщений) -
thrown— Throwable, связанный с сообщением журнала.
logp
public void logp(Level level, String sourceClass, String sourceMethod, Throwable thrown, Supplier<String> msgSupplier)
Если регистратор в данный момент включён для заданного уровня сообщения, сообщение создаётся вызовом предоставленной функции-поставщика. Затем сообщение и заданный Throwable сохраняются в LogRecord, которая передаётся всем зарегистрированным выходным обработчикам.
Обратите внимание: переданный объект сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому выходные форматтеры обрабатывают его особым образом и не считают параметром форматирования свойства message объекта LogRecord.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
thrown— Throwable, связанный с сообщением журнала. -
msgSupplier— функция, которая при вызове формирует нужное сообщение журнала - Начиная с:
- 1.8
logrb
@Deprecated public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg)
Если регистратор в данный момент включён для заданного уровня сообщения, указанное сообщение передаётся всем зарегистрированным выходным объектам Handler.
Строка msg локализуется с использованием указанного пакета ресурсов. Если имя пакета ресурсов равно null, является пустой строкой или недопустимо, строка msg не локализуется.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
bundleName— имя пакета ресурсов для локализации msg; может быть null -
msg— строка сообщения (или ключ в каталоге сообщений)
logrb
@Deprecated public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object param1)
Если регистратор в данный момент включён для заданного уровня сообщения, создаётся соответствующая LogRecord и передаётся всем зарегистрированным выходным объектам Handler.
Строка msg локализуется с использованием указанного пакета ресурсов. Если имя пакета ресурсов равно null, является пустой строкой или недопустимо, строка msg не локализуется.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
bundleName— имя пакета ресурсов для локализации msg; может быть null -
msg— строка сообщения (или ключ в каталоге сообщений) -
param1— параметр сообщения журнала.
logrb
@Deprecated public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object[] params)
Если регистратор в данный момент включён для заданного уровня сообщения, создаётся соответствующая LogRecord и передаётся всем зарегистрированным выходным объектам Handler.
Строка msg локализуется с использованием указанного пакета ресурсов. Если имя пакета ресурсов равно null, является пустой строкой или недопустимо, строка msg не локализуется.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
bundleName— имя пакета ресурсов для локализации msg; может быть null. -
msg— строка сообщения (или ключ в каталоге сообщений) -
params— массив параметров сообщения
logrb
public void logrb(Level level, String sourceClass, String sourceMethod, ResourceBundle bundle, String msg, Object... params)
Если регистратор в данный момент включён для заданного уровня сообщения level, создаётся соответствующая LogRecord и передаётся всем зарегистрированным выходным объектам Handler.
Строка msg локализуется с использованием заданного пакета ресурсов. Если пакет ресурсов равен null, строка msg не локализуется.
- Параметры:
-
level— один из идентификаторов уровня сообщения, напримерSEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
bundle— пакет ресурсов для локализацииmsg; может бытьnull. -
msg— строка сообщения (или ключ в каталоге сообщений) -
params— параметры сообщения (необязательные; могут отсутствовать). - Начиная с:
- 1.8
logrb
public void logrb(Level level, ResourceBundle bundle, String msg, Object... params)
Если регистратор в данный момент включён для заданного уровня сообщения level, создаётся соответствующая LogRecord и передаётся всем зарегистрированным выходным объектам Handler.
Строка msg локализуется с использованием заданного пакета ресурсов. Если пакет ресурсов равен null, строка msg не локализуется.
- Параметры:
-
level— один из идентификаторов уровня сообщения, напримерSEVERE -
bundle— пакет ресурсов для локализацииmsg; может бытьnull. -
msg— строка сообщения (или ключ в каталоге сообщений) -
params— параметры сообщения (необязательные; могут отсутствовать). - Начиная с:
- 9
logrb
@Deprecated public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Throwable thrown)
Если для регистратора в данный момент включён указанный уровень сообщений, переданные аргументы сохраняются в LogRecord, который передаётся всем зарегистрированным обработчикам вывода.
Строка msg локализуется с помощью указанного пакета ресурсов. Если имя пакета ресурсов равно null, является пустой строкой или недопустимо, строка msg не локализуется.
Обратите внимание, что аргумент thrown сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается специальным образом форматтерами вывода и не рассматривается как параметр форматирования для свойства message объекта LogRecord.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
bundleName— имя пакета ресурсов для локализации msg; может быть null -
msg— строковое сообщение (или ключ в каталоге сообщений) -
thrown— Throwable, связанный с сообщением журнала.
logrb
public void logrb(Level level, String sourceClass, String sourceMethod, ResourceBundle bundle, String msg, Throwable thrown)
Если для регистратора в данный момент включён указанный уровень сообщения level, переданные аргументы сохраняются в LogRecord, который передаётся всем зарегистрированным обработчикам вывода.
Строка msg локализуется с помощью указанного пакета ресурсов. Если пакет ресурсов равен null, строка msg не локализуется.
Обратите внимание, что аргумент thrown сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается специальным образом объектами Formatter вывода и не рассматривается как параметр форматирования для свойства message объекта LogRecord.
- Параметры:
-
level— один из идентификаторов уровня сообщения, напримерSEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
bundle— пакет ресурсов для локализацииmsg; может бытьnull -
msg— строковое сообщение (или ключ в каталоге сообщений) -
thrown— Throwable, связанный с сообщением журнала. - Начиная с версии:
- 1.8
logrb
public void logrb(Level level, ResourceBundle bundle, String msg, Throwable thrown)
Если для регистратора в данный момент включён указанный уровень сообщения level, переданные аргументы сохраняются в LogRecord, который передаётся всем зарегистрированным обработчикам вывода.
Строка msg локализуется с помощью указанного пакета ресурсов. Если пакет ресурсов равен null, строка msg не локализуется.
Обратите внимание, что аргумент thrown сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается специальным образом объектами Formatter вывода и не рассматривается как параметр форматирования для свойства message объекта LogRecord.
- Параметры:
-
level— один из идентификаторов уровня сообщения, напримерSEVERE -
bundle— пакет ресурсов для локализацииmsg; может бытьnull. -
msg— строковое сообщение (или ключ в каталоге сообщений) -
thrown— Throwable, связанный с сообщением журнала. - Начиная с версии:
- 9
entering
public void entering(String sourceClass, String sourceMethod)
Это вспомогательный метод, который можно использовать для регистрации входа в метод. Записывается LogRecord с сообщением "ENTRY", уровнем журнала FINER, а также указанными sourceMethod и sourceClass.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя вызываемого метода
entering
public void entering(String sourceClass, String sourceMethod, Object param1)
Это вспомогательный метод, который можно использовать для регистрации входа в метод. Записывается LogRecord с сообщением "ENTRY {0}", уровнем журнала FINER, а также указанными sourceMethod, sourceClass и параметром.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя вызываемого метода -
param1— параметр вызываемого метода
entering
public void entering(String sourceClass, String sourceMethod, Object[] params)
Это вспомогательный метод, который можно использовать для регистрации входа в метод. Записывается LogRecord с сообщением "ENTRY" (за которым следует индикатор формата {N} для каждой записи в массиве параметров), уровнем журнала FINER, а также указанными sourceMethod, sourceClass и параметрами.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя вызываемого метода -
params— массив параметров вызываемого метода
exiting
public void exiting(String sourceClass, String sourceMethod)
Это вспомогательный метод, который можно использовать для регистрации возврата из метода. Записывается LogRecord с сообщением "RETURN", уровнем журнала FINER, а также указанными sourceMethod и sourceClass.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода
exiting
public void exiting(String sourceClass, String sourceMethod, Object result)
Это вспомогательный метод, который можно использовать для регистрации возврата из метода. Записывается LogRecord с сообщением "RETURN {0}", уровнем журнала FINER, а также указанными sourceMethod, sourceClass и объектом результата.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода -
result— возвращаемый объект
throwing
public void throwing(String sourceClass, String sourceMethod, Throwable thrown)
Это вспомогательный метод для регистрации завершения метода из-за выбрасывания исключения. Запись выполняется с уровнем FINER.
Если для регистратора в данный момент включён указанный уровень сообщения, переданные аргументы сохраняются в LogRecord, который передаётся всем зарегистрированным обработчикам вывода. Для сообщения LogRecord устанавливается значение "THROW".
Обратите внимание, что аргумент thrown сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается специальным образом форматтерами вывода и не рассматривается как параметр форматирования для свойства message объекта LogRecord.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода. -
thrown— выбрасываемый Throwable.
severe
public void severe(String msg)
Если для регистратора в данный момент включён уровень сообщений SEVERE, указанное сообщение передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
warning
public void warning(String msg)
Если для регистратора в данный момент включён уровень сообщений WARNING, указанное сообщение передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
info
public void info(String msg)
Если для регистратора в данный момент включён уровень сообщений INFO, указанное сообщение передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
config
public void config(String msg)
Если для регистратора в данный момент включён уровень сообщений CONFIG, указанное сообщение передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
fine
public void fine(String msg)
Если для регистратора в данный момент включён уровень сообщений FINE, указанное сообщение передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
finer
public void finer(String msg)
Если для регистратора в данный момент включён уровень сообщений FINER, указанное сообщение передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
finest
public void finest(String msg)
Если для регистратора в данный момент включён уровень сообщений FINEST, указанное сообщение передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
severe
public void severe(Supplier<String> msgSupplier)
Если для регистратора в данный момент включён уровень сообщений SEVERE, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с версии:
- 1.8
warning
public void warning(Supplier<String> msgSupplier)
Если для регистратора в данный момент включён уровень сообщений WARNING, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с версии:
- 1.8
info
public void info(Supplier<String> msgSupplier)
Если для регистратора в данный момент включён уровень сообщений INFO, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с версии:
- 1.8
config
public void config(Supplier<String> msgSupplier)
Если для регистратора в данный момент включён уровень сообщений CONFIG, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с версии:
- 1.8
fine
public void fine(Supplier<String> msgSupplier)
Если для регистратора в данный момент включён уровень сообщений FINE, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с версии:
- 1.8
finer
public void finer(Supplier<String> msgSupplier)
Если для регистратора в данный момент включён уровень сообщений FINER, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с версии:
- 1.8
finest
public void finest(Supplier<String> msgSupplier)
Если для регистратора в данный момент включён уровень сообщений FINEST, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с версии:
- 1.8
setLevel
public void setLevel(Level newLevel)
Если новый уровень равен null, это означает, что данный узел должен наследовать уровень от ближайшего предка с заданным (не равным null) значением уровня.
- Параметры:
-
newLevel— новое значение уровня журнала (может быть null)
getLevel
public Level getLevel()
- Возвращает:
- уровень этого Logger
isLoggable
public boolean isLoggable(Level level)
- Параметры:
-
level— уровень сообщения для ведения журнала - Возвращает:
- true, если сообщение указанного уровня в данный момент записывается.
getName
public String getName()
- Возвращает:
- имя регистратора. Для анонимных Logger возвращается null.
addHandler
public void addHandler(Handler handler)
По умолчанию Logger также отправляют вывод родительскому регистратору. Обычно корневой Logger настраивается с набором Handler, которые служат обработчиками по умолчанию для всех регистраторов.
- Параметры:
-
handler— обработчик ведения журнала
removeHandler
public void removeHandler(Handler handler)
Метод возвращает управление без уведомления, если указанный Handler не найден или равен null.
- Параметры:
-
handler— обработчик ведения журнала
getHandlers
public Handler[] getHandlers()
- Возвращает:
- массив всех зарегистрированных обработчиков
setUseParentHandlers
public void setUseParentHandlers(boolean useParentHandlers)
- Параметры:
-
useParentHandlers— true, если вывод следует отправлять родительскому регистратору.
getUseParentHandlers
public boolean getUseParentHandlers()
- Возвращает:
- true, если вывод отправляется родительскому регистратору
setResourceBundle
public void setResourceBundle(ResourceBundle bundle)
- Параметры:
-
bundle— пакет ресурсов, который будет использовать этот регистратор. - Исключения:
-
NullPointerException— если указанный пакет равенnull. -
IllegalArgumentException— если у указанного пакета нет базового имени или если для этого регистратора уже задан пакет ресурсов с другим базовым именем. - Начиная с версии:
- 1.8
getParent
public Logger getParent()
Метод возвращает ближайшего существующего родителя в иерархии имён. Например, если Logger имеет имя "a.b.c.d", создан Logger с именем "a.b", но Logger с именем "a.b.c" не существует, вызов getParent для Logger "a.b.c.d" вернёт Logger "a.b".
Если метод вызван для корневого Logger в иерархии имён, результатом будет null.
- Возвращает:
- ближайший существующий родительский Logger
setParent
public void setParent(Logger parent)
Его не следует вызывать из кода приложения.
- Параметры:
-
parent— новый родительский регистратор
© 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/Logger.html