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