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