Класс Logger
public class Logger extends Object
Объекты Logger можно получить, вызвав один из фабричных методов getLogger. Эти методы либо создают новый Logger, либо возвращают подходящий существующий Logger. Важно отметить, что Logger, возвращённый одним из фабричных методов getLogger, может быть удалён сборщиком мусора в любой момент, если на него не сохраняется сильная ссылка.
Сообщения журнала передаются зарегистрированным объектам Handler, которые могут направлять их в различные места назначения, включая консоли, файлы, журналы ОС и т. д.
Каждый Logger отслеживает «родительский» Logger — ближайшего существующего предка в пространстве имён Logger.
С каждым Logger связан «уровень» (Level). Он определяет минимальный уровень, который интересует этот логгер. Если для уровня Logger задано значение null, то эффективный уровень наследуется от родительского логгера, который, в свою очередь, может рекурсивно получить его от своего родителя, и так далее вверх по дереву.
Уровень ведения журнала можно настроить с помощью свойств из файла конфигурации ведения журнала, как описано в документации к классу LogManager. Однако его также можно динамически изменить вызовом метода Logger.setLevel. Если уровень логгера изменён, это изменение может повлиять и на дочерние логгеры, поскольку любой дочерний логгер, для которого в качестве уровня задано null, наследует эффективный уровень от родителя.
При каждом вызове метода ведения журнала Logger сначала выполняет быструю проверку запрошенного уровня (например, SEVERE или FINE) относительно эффективного уровня журнала логгера. Если запрошенный уровень ниже уровня журнала, вызов немедленно возвращается.
После прохождения этой первоначальной (быстрой) проверки Logger создаёт LogRecord для описания сообщения журнала. Затем он вызывает Filter (если он задан), чтобы более тщательно проверить, следует ли публиковать запись. Если проверка пройдена, LogRecord передаётся выходным обработчикам. По умолчанию логгеры также рекурсивно передают сообщения обработчикам родительских логгеров вверх по дереву.
С каждым Logger может быть связан ResourceBundle. ResourceBundle можно указать по имени с помощью фабричного метода getLogger(java.lang.String, java.lang.String) или по значению с помощью метода setResourceBundle. Этот пакет будет использоваться для локализации сообщений журнала. Если у Logger нет собственного ResourceBundle или имени пакета ресурсов, он будет рекурсивно наследовать ResourceBundle или имя пакета ресурсов от родительского логгера вверх по дереву.
Большинство методов вывода логгера принимают аргумент «msg». Этот аргумент может быть как обычным значением, так и ключом локализации. Во время форматирования, если у логгера есть (или он наследует) локализационный ResourceBundle и если в ResourceBundle есть соответствие для строки msg, эта строка заменяется локализованным значением. В противном случае используется исходная строка msg. Обычно форматтеры используют форматирование параметров в стиле java.text.MessageFormat, поэтому, например, форматная строка "{0} {1}" преобразует два параметра в строки.
В некоторых методах вместо аргумента «msg» принимается аргумент «msgSupplier». Эти методы принимают функцию 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 с использованием Locale по умолчанию на момент ведения журнала.
При преобразовании имён пакетов ресурсов в объекты ResourceBundle логгер сначала пытается использовать контекстный загрузчик классов потока, чтобы преобразовать заданное имя пакета ресурсов в 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).
- Начиная с:
- 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 |
Создаёт анонимный Logger. |
Filter |
getFilter() |
Возвращает текущий фильтр этого Logger. |
static final Logger |
getGlobal() |
Возвращает объект глобального логгера с именем Logger.GLOBAL_LOGGER_NAME. |
Handler[] |
getHandlers() |
Возвращает обработчики, связанные с этим логгером. |
Level |
getLevel() |
Возвращает уровень журнала, заданный для этого Logger. |
static Logger |
getLogger |
Находит или создаёт логгер для именованной подсистемы. |
static Logger |
getLogger |
Находит или создаёт логгер для именованной подсистемы. |
String |
getName() |
Возвращает имя этого логгера. |
Logger |
getParent() |
Возвращает родительский Logger. |
ResourceBundle |
getResourceBundle() |
Возвращает пакет ресурсов локализации для этого логгера. |
String |
getResourceBundleName() |
Возвращает имя пакета ресурсов локализации для этого логгера. |
boolean |
getUseParentHandlers() |
Определяет, передаёт ли этот логгер свой вывод родительскому логгеру. |
void |
info |
Регистрирует сообщение уровня INFO. |
void |
info |
Регистрирует сообщение уровня INFO, которое формируется только в том случае, если уровень ведения журнала допускает его фактическую регистрацию. |
boolean |
isLoggable |
Проверяет, будет ли этим логгером фактически зарегистрировано сообщение заданного уровня. |
void |
log |
Регистрирует сообщение без аргументов. |
void |
log |
Регистрирует сообщение с одним объектом-параметром. |
void |
log |
Регистрирует сообщение с массивом объектных аргументов. |
void |
log |
Регистрирует сообщение с информацией о связанном объекте Throwable. |
void |
log |
Регистрирует сообщение, формируемое по требованию, с информацией о связанном объекте Throwable. |
void |
log |
Регистрирует сообщение, которое формируется только в том случае, если уровень ведения журнала допускает его фактическую регистрацию. |
void |
log |
Регистрирует LogRecord. |
void |
logp |
Регистрирует сообщение без аргументов, указывая исходный класс и метод. |
void |
logp |
Регистрирует сообщение с одним объектом-параметром, указывая исходный класс и метод. |
void |
logp |
Регистрирует сообщение с массивом объектных аргументов, указывая исходный класс и метод. |
void |
logp |
Регистрирует сообщение с информацией о связанном объекте Throwable, указывая исходный класс и метод. |
void |
logp |
Регистрирует сообщение, формируемое по требованию, с информацией о связанном объекте Throwable, указывая исходный класс и метод. |
void |
logp |
Регистрирует сообщение, формируемое по требованию, без аргументов, указывая исходный класс и метод. |
void |
logrb |
Устарело. |
void |
logrb |
Устарело. |
void |
logrb |
Устарело. |
void |
logrb |
Устарело. |
void |
logrb |
Регистрирует сообщение с указанием исходного класса, метода и пакета ресурсов, а также необязательного списка параметров сообщения. |
void |
logrb |
Регистрирует сообщение с указанием исходного класса, метода и пакета ресурсов, а также информации о связанном объекте Throwable. |
void |
logrb |
Регистрирует сообщение с указанием исходного класса, метода и пакета ресурсов, а также необязательного списка параметров сообщения. |
void |
logrb |
Регистрирует сообщение с указанием исходного класса, метода и пакета ресурсов, а также информации о связанном объекте Throwable. |
void |
removeHandler |
Удаляет обработчик журнала. |
void |
setFilter |
Задаёт фильтр для управления выводом этого Logger. |
void |
setLevel |
Задаёт уровень журнала, определяющий, сообщения каких уровней будут регистрироваться этим логгером. |
void |
setParent |
Задаёт родительский Logger. |
void |
setResourceBundle |
Задаёт пакет ресурсов для этого логгера. |
void |
setUseParentHandlers |
Указывает, должен ли этот логгер передавать свой вывод родительскому Logger. |
void |
severe |
Регистрирует сообщение уровня SEVERE. |
void |
severe |
Регистрирует сообщение уровня SEVERE, которое формируется только в том случае, если уровень ведения журнала допускает его фактическую регистрацию. |
void |
throwing |
Регистрирует выбрасывание исключения. |
void |
warning |
Регистрирует сообщение уровня WARNING. |
void |
warning |
Регистрирует сообщение уровня WARNING, которое формируется только в том случае, если уровень ведения журнала допускает его фактическую регистрацию. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело, подлежит удалению: этот элемент API будет удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ждать пробуждения, обычно посредством вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
Подробное описание полей
GLOBAL_LOGGER_NAME
public static final String GLOBAL_LOGGER_NAME
- Начиная с:
- 1.6
- См. также:
global
@Deprecated public static final Logger global
Logger.getGlobal(). Для совместимости со старыми версиями JDK, в которых Logger.getGlobal() недоступен, используйте вызов Logger.getLogger(Logger.GLOBAL_LOGGER_NAME) или Logger.getLogger("global").Подробное описание конструкторов
Logger
protected Logger(String name, String resourceBundleName)
Изначально для регистратора задаётся уровень null, а для useParentHandlers — значение true.
- Параметры:
-
name- Имя регистратора. Оно должно состоять из разделённых точками частей и обычно основываться на имени пакета или класса подсистемы, например java.net или javax.swing. Для анонимных регистраторов оно может быть null. -
resourceBundleName- Имя ResourceBundle, используемого для локализации сообщений этого регистратора. Может быть null, если ни одно из сообщений не требует локализации. - Исключения:
-
MissingResourceException- если значение resourceBundleName не равно null и соответствующий ресурс не найден.
Подробное описание методов
getGlobal
public static final Logger getGlobal()
- Возвращает:
- объект глобального регистратора
- Начиная с:
- 1.7
getLogger
public static Logger getLogger(String name)
Если создан новый регистратор, его уровень журналирования будет настроен в соответствии с конфигурацией LogManager, а сам регистратор будет настроен на отправку выходных данных журналирования обработчикам своего родителя. Он будет зарегистрирован в глобальном пространстве имён LogManager.
Примечание. LogManager может хранить на вновь созданный Logger только слабую ссылку. Важно понимать, что ранее созданный Logger с указанным именем может быть собран сборщиком мусора в любой момент, если на него нет сильной ссылки. В частности, это означает, что два последовательных вызова, например getLogger("MyLogger").log(...), могут использовать разные объекты Logger с именем "MyLogger", если в программе нет других сильных ссылок на Logger с именем "MyLogger".
- Параметры:
-
name- Имя регистратора. Оно должно состоять из разделённых точками частей и обычно основываться на имени пакета или класса подсистемы, например java.net или javax.swing - Возвращает:
- подходящий Logger
- Исключения:
-
NullPointerException- если имя равно null.
getLogger
public static Logger getLogger(String name, String resourceBundleName)
Если создан новый регистратор, его уровень журналирования будет настроен в соответствии с LogManager, а сам регистратор будет настроен на отправку выходных данных журналирования обработчикам своего родителя. Он будет зарегистрирован в глобальном пространстве имён LogManager.
Примечание. LogManager может хранить на вновь созданный Logger только слабую ссылку. Важно понимать, что ранее созданный Logger с указанным именем может быть собран сборщиком мусора в любой момент, если на него нет сильной ссылки. В частности, это означает, что два последовательных вызова, например getLogger("MyLogger", ...).log(...), могут использовать разные объекты Logger с именем "MyLogger", если в программе нет других сильных ссылок на Logger с именем "MyLogger".
Если указанный Logger уже существует и у него ещё нет ресурса локализации, для него используется заданное имя ресурса. Если указанный Logger уже существует и у него задано другое имя ресурса, выбрасывается IllegalArgumentException.
- Параметры:
-
name- Имя регистратора. Оно должно состоять из разделённых точками частей и обычно основываться на имени пакета или класса подсистемы, например java.net или javax.swing -
resourceBundleName- Имя ResourceBundle, используемого для локализации сообщений этого регистратора. Может бытьnull, если ни одно из сообщений не требует локализации. - Возвращает:
- подходящий Logger
- Исключения:
-
MissingResourceException- если значение resourceBundleName не равно null и соответствующий ресурс не найден. -
IllegalArgumentException- если Logger уже существует и использует другое имя ресурса; или еслиresourceBundleNameимеет значениеnull, но для именованного регистратора задан ресурс. -
NullPointerException- если имя равно null.
getAnonymousLogger
public static Logger getAnonymousLogger()
Этот фабричный метод предназначался главным образом для использования из апплетов. Поскольку полученный Logger является анонимным, создавший его класс может хранить его в закрытом доступе. Это устраняло необходимость в стандартных проверках безопасности, что, в свою очередь, позволяло недоверенному коду апплета обновлять состояние управления Logger. Например, апплет мог вызвать setLevel или addHandler для анонимного Logger.
Несмотря на то что новый регистратор является анонимным, он настраивается с корневым регистратором ("") в качестве родителя. Это означает, что по умолчанию он наследует от корневого регистратора эффективный уровень и обработчики.
- Возвращает:
- вновь созданный закрытый Logger
getAnonymousLogger
public static Logger getAnonymousLogger(String resourceBundleName)
Этот фабричный метод предназначался главным образом для использования из апплетов. Поскольку полученный Logger является анонимным, создавший его класс может хранить его в закрытом доступе. Это устраняло необходимость в стандартных проверках безопасности, что, в свою очередь, позволяло недоверенному коду апплета обновлять состояние управления Logger. Например, апплет мог вызвать setLevel или addHandler для анонимного Logger.
Несмотря на то что новый регистратор является анонимным, он настраивается с корневым регистратором ("") в качестве родителя. Это означает, что по умолчанию он наследует от корневого регистратора эффективный уровень и обработчики.
- Параметры:
-
resourceBundleName- Имя ResourceBundle, используемого для локализации сообщений этого регистратора. Может быть null, если ни одно из сообщений не требует локализации. - Возвращает:
- вновь созданный закрытый Logger
- Исключения:
-
MissingResourceException- если значение resourceBundleName не равно null и соответствующий ресурс не найден.
getResourceBundle
public ResourceBundle getResourceBundle()
ResourceBundle, заданный методом setResourceBundle или сопоставленный с именем ресурсного пакета, заданным фабричным методом getLogger, для текущей локали по умолчанию. Обратите внимание: если результат равен
null, Logger будет использовать ресурсный пакет или имя ресурсного пакета, унаследованное от родителя.- Возвращает:
- пакет локализации (может быть
null)
getResourceBundleName
public String getResourceBundleName()
getLogger, либо базовое имя ResourceBundle, заданного методом setResourceBundle. Обратите внимание: если результат равен
null, Logger будет использовать ресурсный пакет или имя ресурсного пакета, унаследованное от родителя.- Возвращает:
- имя пакета локализации (может быть
null)
setFilter
public void setFilter(Filter newFilter)
После прохождения первоначальной проверки «уровня» Logger вызывает этот Filter, чтобы проверить, действительно ли следует опубликовать запись журнала.
- Параметры:
-
newFilter- объект фильтра (может быть null)
getFilter
public Filter getFilter()
- Возвращает:
- объект фильтра (может быть null)
log
public void log(LogRecord record)
Все остальные методы журналирования этого класса вызывают этот метод для непосредственного выполнения журналирования. Подклассы могут переопределить этот единственный метод, чтобы перехватывать все действия журналирования.
- Параметры:
-
record- LogRecord, который нужно опубликовать
log
public void log(Level level, String msg)
Если регистратор в данный момент включён для указанного уровня сообщений, заданное сообщение передаётся всем зарегистрированным объектам Handler для вывода.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
msg- строковое сообщение (или ключ в каталоге сообщений)
log
public void log(Level level, Supplier<String> msgSupplier)
Если регистратор в данный момент включён для указанного уровня сообщений, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler для вывода.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
msgSupplier- функция, которая при вызове формирует нужное сообщение журнала - Начиная с:
- 1.8
log
public void log(Level level, String msg, Object param1)
Если регистратор в данный момент включён для указанного уровня сообщений, создаётся соответствующий LogRecord и передаётся всем зарегистрированным объектам Handler для вывода.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
msg- строковое сообщение (или ключ в каталоге сообщений) -
param1- параметр сообщения
log
public void log(Level level, String msg, Object[] params)
Если регистратор в данный момент включён для указанного уровня сообщений, создаётся соответствующий LogRecord и передаётся всем зарегистрированным объектам Handler для вывода.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
msg- строковое сообщение (или ключ в каталоге сообщений) -
params- массив параметров сообщения
log
public void log(Level level, String msg, Throwable thrown)
Если регистратор в данный момент включён для указанного уровня сообщений, заданные аргументы сохраняются в LogRecord, который передаётся всем зарегистрированным обработчикам вывода.
Обратите внимание: аргумент исключения сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается обработчиками форматирования вывода особым образом и не рассматривается как параметр форматирования свойства message объекта LogRecord.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
msg- строковое сообщение (или ключ в каталоге сообщений) -
thrown- Throwable, связанный с сообщением журнала.
log
public void log(Level level, Throwable thrown, Supplier<String> msgSupplier)
Если регистратор в данный момент включён для указанного уровня сообщений, сообщение создаётся вызовом предоставленной функции-поставщика. Сообщение и заданный Throwable затем сохраняются в LogRecord, который передаётся всем зарегистрированным обработчикам вывода.
Обратите внимание: аргумент исключения сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается обработчиками форматирования вывода особым образом и не рассматривается как параметр форматирования свойства message объекта LogRecord.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
thrown- Throwable, связанный с сообщением журнала. -
msgSupplier- функция, которая при вызове формирует нужное сообщение журнала - Начиная с:
- 1.8
logp
public void logp(Level level, String sourceClass, String sourceMethod, String msg)
Если регистратор в данный момент включён для указанного уровня сообщений, заданное сообщение передаётся всем зарегистрированным объектам Handler для вывода.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
msg- строковое сообщение (или ключ в каталоге сообщений)
logp
public void logp(Level level, String sourceClass, String sourceMethod, Supplier<String> msgSupplier)
Если регистратор в данный момент включён для указанного уровня сообщений, сообщение создаётся вызовом предоставленной функции-поставщика и передаётся всем зарегистрированным объектам Handler для вывода.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
msgSupplier- функция, которая при вызове формирует нужное сообщение журнала - Начиная с:
- 1.8
logp
public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object param1)
Если регистратор в данный момент включён для указанного уровня сообщений, создаётся соответствующий LogRecord и передаётся всем зарегистрированным объектам Handler для вывода.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
msg- строковое сообщение (или ключ в каталоге сообщений) -
param1- параметр сообщения журнала.
logp
public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object[] params)
Если регистратор в данный момент включён для указанного уровня сообщений, создаётся соответствующий LogRecord и передаётся всем зарегистрированным объектам Handler для вывода.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
msg- строковое сообщение (или ключ в каталоге сообщений) -
params- массив параметров сообщения
logp
public void logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown)
Если регистратор в данный момент включён для указанного уровня сообщений, заданные аргументы сохраняются в LogRecord, который передаётся всем зарегистрированным обработчикам вывода.
Обратите внимание: аргумент исключения сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается обработчиками форматирования вывода особым образом и не рассматривается как параметр форматирования свойства message объекта LogRecord.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
msg- строковое сообщение (или ключ в каталоге сообщений) -
thrown- Throwable, связанный с сообщением журнала.
logp
public void logp(Level level, String sourceClass, String sourceMethod, Throwable thrown, Supplier<String> msgSupplier)
Если регистратор в данный момент включён для указанного уровня сообщений, сообщение создаётся вызовом предоставленной функции-поставщика. Затем сообщение и заданный Throwable сохраняются в LogRecord, который передаётся всем зарегистрированным обработчикам вывода.
Обратите внимание: аргумент исключения сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается обработчиками форматирования вывода особым образом и не рассматривается как параметр форматирования свойства message объекта LogRecord.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
thrown- Throwable, связанный с сообщением журнала. -
msgSupplier- функция, которая при вызове формирует нужное сообщение журнала - Начиная с:
- 1.8
logrb
@Deprecated public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg)
Если регистратор в данный момент включён для указанного уровня сообщений, заданное сообщение передаётся всем зарегистрированным объектам Handler для вывода.
Строка msg локализуется с помощью указанного ресурсного пакета. Если имя ресурсного пакета равно null, является пустой строкой или недопустимо, строка msg не локализуется.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
bundleName- имя ресурсного пакета для локализации msg; может быть null -
msg- строковое сообщение (или ключ в каталоге сообщений)
logrb
@Deprecated public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object param1)
Если регистратор в данный момент включён для указанного уровня сообщений, создаётся соответствующий LogRecord и передаётся всем зарегистрированным объектам Handler для вывода.
Строка msg локализуется с помощью указанного ресурсного пакета. Если имя ресурсного пакета равно null, является пустой строкой или недопустимо, строка msg не локализуется.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
bundleName- имя ресурсного пакета для локализации msg; может быть null -
msg- строковое сообщение (или ключ в каталоге сообщений) -
param1- параметр сообщения журнала.
logrb
@Deprecated public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object[] params)
Если регистратор в данный момент включён для указанного уровня сообщений, создаётся соответствующий LogRecord и передаётся всем зарегистрированным объектам Handler для вывода.
Строка msg локализуется с помощью указанного ресурсного пакета. Если имя ресурсного пакета равно null, является пустой строкой или недопустимо, строка msg не локализуется.
- Параметры:
-
level- один из идентификаторов уровня сообщения, например SEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
bundleName- имя ресурсного пакета для локализации msg; может быть null. -
msg- строковое сообщение (или ключ в каталоге сообщений) -
params- массив параметров сообщения
logrb
public void logrb(Level level, String sourceClass, String sourceMethod, ResourceBundle bundle, String msg, Object... params)
Если регистратор в данный момент включён для указанного уровня сообщения level, создаётся соответствующий LogRecord и передаётся всем зарегистрированным объектам Handler для вывода.
Строка msg локализуется с помощью заданного ресурсного пакета. Если ресурсный пакет равен null, строка msg не локализуется.
- Параметры:
-
level- один из идентификаторов уровня сообщения, напримерSEVERE -
sourceClass- имя класса, из которого поступил запрос на журналирование -
sourceMethod- имя метода, из которого поступил запрос на журналирование -
bundle- ресурсный пакет для локализацииmsg; может бытьnull. -
msg- строковое сообщение (или ключ в каталоге сообщений) -
params- параметры сообщения (необязательно; могут отсутствовать). - Начиная с:
- 1.8
logrb
public void logrb(Level level, ResourceBundle bundle, String msg, Object... params)
Если регистратор в данный момент включён для указанного уровня сообщения level, создаётся соответствующий LogRecord и передаётся всем зарегистрированным объектам Handler для вывода.
Строка msg локализуется с помощью заданного ресурсного пакета. Если ресурсный пакет равен null, строка msg не локализуется.
- Параметры:
-
level- один из идентификаторов уровня сообщения, напримерSEVERE -
bundle- ресурсный пакет для локализацииmsg; может бытьnull. -
msg- строковое сообщение (или ключ в каталоге сообщений) -
params- параметры сообщения (необязательно; могут отсутствовать). - Начиная с:
- 9
logrb
@Deprecated public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Throwable thrown)
Если для регистратора в данный момент включен указанный уровень сообщения, заданные аргументы сохраняются в LogRecord, который передается всем зарегистрированным обработчикам вывода.
Строка msg локализуется с помощью указанного пакета ресурсов. Если имя пакета ресурсов равно null, является пустой строкой или недопустимо, строка msg не локализуется.
Обратите внимание, что аргумент thrown сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается обработчиками вывода Formatter особым образом и не рассматривается как параметр форматирования свойства message объекта LogRecord.
- Параметры:
-
level— один из идентификаторов уровня сообщения, например SEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
bundleName— имя пакета ресурсов для локализации msg; может быть null -
msg— строковое сообщение (или ключ в каталоге сообщений) -
thrown— Throwable, связанный с сообщением журнала.
logrb
public void logrb(Level level, String sourceClass, String sourceMethod, ResourceBundle bundle, String msg, Throwable thrown)
Если для регистратора в данный момент включен указанный уровень сообщения level, заданные аргументы сохраняются в LogRecord, который передается всем зарегистрированным обработчикам вывода.
Строка msg локализуется с помощью указанного пакета ресурсов. Если пакет ресурсов равен null, строка msg не локализуется.
Обратите внимание, что аргумент thrown сохраняется в свойстве LogRecord thrown, а не в свойстве LogRecord parameters. Поэтому он обрабатывается объектами Formatter вывода особым образом и не рассматривается как параметр форматирования свойства LogRecord message.
- Параметры:
-
level— один из идентификаторов уровня сообщения, напримерSEVERE -
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, отправившего запрос на ведение журнала -
bundle— пакет ресурсов для локализацииmsg; может бытьnull -
msg— строковое сообщение (или ключ в каталоге сообщений) -
thrown— Throwable, связанный с сообщением журнала. - Начиная с:
- 1.8
logrb
public void logrb(Level level, ResourceBundle bundle, String msg, Throwable thrown)
Если для регистратора в данный момент включен указанный уровень сообщения level, заданные аргументы сохраняются в LogRecord, который передается всем зарегистрированным обработчикам вывода.
Строка msg локализуется с помощью указанного пакета ресурсов. Если пакет ресурсов равен null, строка msg не локализуется.
Обратите внимание, что аргумент thrown сохраняется в свойстве LogRecord thrown, а не в свойстве LogRecord parameters. Поэтому он обрабатывается объектами Formatter вывода особым образом и не рассматривается как параметр форматирования свойства LogRecord message.
- Параметры:
-
level— один из идентификаторов уровня сообщения, напримерSEVERE -
bundle— пакет ресурсов для локализацииmsg; может бытьnull. -
msg— строковое сообщение (или ключ в каталоге сообщений) -
thrown— Throwable, связанный с сообщением журнала. - Начиная с:
- 9
entering
public void entering(String sourceClass, String sourceMethod)
Это вспомогательный метод, который можно использовать для записи входа в метод. Записывается LogRecord с сообщением "ENTRY", уровнем журнала FINER и указанными sourceMethod и sourceClass.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, в который осуществляется вход
entering
public void entering(String sourceClass, String sourceMethod, Object param1)
Это вспомогательный метод, который можно использовать для записи входа в метод. Записывается LogRecord с сообщением "ENTRY {0}", уровнем журнала FINER, а также указанными sourceMethod, sourceClass и параметром.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, в который осуществляется вход -
param1— параметр метода, в который осуществляется вход
entering
public void entering(String sourceClass, String sourceMethod, Object[] params)
Это вспомогательный метод, который можно использовать для записи входа в метод. Записывается LogRecord с сообщением "ENTRY" (за которым следует индикатор формата {N} для каждого элемента массива параметров), уровнем журнала FINER, а также указанными sourceMethod, sourceClass и параметрами.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода, в который осуществляется вход -
params— массив параметров метода, в который осуществляется вход
exiting
public void exiting(String sourceClass, String sourceMethod)
Это вспомогательный метод, который можно использовать для записи выхода из метода. Записывается LogRecord с сообщением "RETURN", уровнем журнала FINER и указанными sourceMethod и sourceClass.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода
exiting
public void exiting(String sourceClass, String sourceMethod, Object result)
Это вспомогательный метод, который можно использовать для записи выхода из метода. Записывается LogRecord с сообщением "RETURN {0}", уровнем журнала FINER, а также указанными sourceMethod, sourceClass и объектом результата.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода -
result— возвращаемый объект
throwing
public void throwing(String sourceClass, String sourceMethod, Throwable thrown)
Это вспомогательный метод для записи факта завершения метода из-за выбрасывания исключения. Запись выполняется на уровне FINER.
Если для регистратора в данный момент включен указанный уровень сообщения, заданные аргументы сохраняются в LogRecord, который передается всем зарегистрированным обработчикам вывода. Для свойства message объекта LogRecord задается значение "THROW".
Обратите внимание, что аргумент thrown сохраняется в свойстве thrown объекта LogRecord, а не в свойстве parameters объекта LogRecord. Поэтому он обрабатывается обработчиками вывода Formatter особым образом и не рассматривается как параметр форматирования свойства message объекта LogRecord.
- Параметры:
-
sourceClass— имя класса, отправившего запрос на ведение журнала -
sourceMethod— имя метода. -
thrown— выбрасываемый объект Throwable.
severe
public void severe(String msg)
Если для регистратора в данный момент включен уровень сообщения SEVERE, указанное сообщение передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
warning
public void warning(String msg)
Если для регистратора в данный момент включен уровень сообщения WARNING, указанное сообщение передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
info
public void info(String msg)
Если для регистратора в данный момент включен уровень сообщения INFO, указанное сообщение передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
config
public void config(String msg)
Если для регистратора в данный момент включен уровень сообщения CONFIG, указанное сообщение передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
fine
public void fine(String msg)
Если для регистратора в данный момент включен уровень сообщения FINE, указанное сообщение передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
finer
public void finer(String msg)
Если для регистратора в данный момент включен уровень сообщения FINER, указанное сообщение передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
finest
public void finest(String msg)
Если для регистратора в данный момент включен уровень сообщения FINEST, указанное сообщение передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msg— строковое сообщение (или ключ в каталоге сообщений)
severe
public void severe(Supplier<String> msgSupplier)
Если для регистратора в данный момент включен уровень сообщения SEVERE, сообщение создается вызовом предоставленной функции-поставщика и передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с:
- 1.8
warning
public void warning(Supplier<String> msgSupplier)
Если для регистратора в данный момент включен уровень сообщения WARNING, сообщение создается вызовом предоставленной функции-поставщика и передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с:
- 1.8
info
public void info(Supplier<String> msgSupplier)
Если для регистратора в данный момент включен уровень сообщения INFO, сообщение создается вызовом предоставленной функции-поставщика и передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с:
- 1.8
config
public void config(Supplier<String> msgSupplier)
Если для регистратора в данный момент включен уровень сообщения CONFIG, сообщение создается вызовом предоставленной функции-поставщика и передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с:
- 1.8
fine
public void fine(Supplier<String> msgSupplier)
Если для регистратора в данный момент включен уровень сообщения FINE, сообщение создается вызовом предоставленной функции-поставщика и передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с:
- 1.8
finer
public void finer(Supplier<String> msgSupplier)
Если для регистратора в данный момент включен уровень сообщения FINER, сообщение создается вызовом предоставленной функции-поставщика и передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с:
- 1.8
finest
public void finest(Supplier<String> msgSupplier)
Если для регистратора в данный момент включен уровень сообщения FINEST, сообщение создается вызовом предоставленной функции-поставщика и передается всем зарегистрированным объектам Handler вывода.
- Параметры:
-
msgSupplier— функция, вызов которой формирует требуемое сообщение журнала - Начиная с:
- 1.8
setLevel
public void setLevel(Level newLevel)
Если новый уровень равен null, это означает, что данный узел должен наследовать уровень от ближайшего предка с заданным (не равным null) значением уровня.
- Параметры:
-
newLevel— новое значение уровня ведения журнала (может быть null)
getLevel
public Level getLevel()
- Возвращает:
- уровень этого Logger
isLoggable
public boolean isLoggable(Level level)
- Параметры:
-
level— уровень ведения журнала для сообщения - Возвращает:
- true, если сообщения указанного уровня в данный момент записываются.
getName
public String getName()
- Возвращает:
- имя регистратора. Для анонимных регистраторов будет равно null.
addHandler
public void addHandler(Handler handler)
По умолчанию регистраторы также отправляют вывод своему родительскому регистратору. Обычно корневой Logger настраивается с набором обработчиков Handler, которые фактически выступают обработчиками по умолчанию для всех регистраторов.
- Параметры:
-
handler— обработчик Handler для ведения журнала
removeHandler
public void removeHandler(Handler handler)
Метод завершается без действий, если указанный обработчик Handler не найден или равен null.
- Параметры:
-
handler— обработчик Handler для ведения журнала
getHandlers
public Handler[] getHandlers()
- Возвращает:
- массив всех зарегистрированных обработчиков Handler
setUseParentHandlers
public void setUseParentHandlers(boolean useParentHandlers)
- Параметры:
-
useParentHandlers— true, если вывод следует отправлять родительскому регистратору.
getUseParentHandlers
public boolean getUseParentHandlers()
- Возвращает:
- true, если вывод отправляется родительскому регистратору
setResourceBundle
public void setResourceBundle(ResourceBundle bundle)
- Параметры:
-
bundle— пакет ресурсов, который должен использовать этот регистратор. - Выбрасывает:
-
NullPointerException— если указанный пакет равенnull. -
IllegalArgumentException— если у указанного пакета отсутствует базовое имя или если для этого регистратора уже задан пакет ресурсов, но у указанного пакета другое базовое имя. - Начиная с:
- 1.8
getParent
public Logger getParent()
Этот метод возвращает ближайшего существующего родителя в пространстве имен. Например, если Logger называется "a.b.c.d", создан Logger с именем "a.b", но Logger "a.b.c" не существует, вызов getParent для Logger "a.b.c.d" вернет Logger "a.b".
Если метод вызван для корневого Logger в пространстве имен, результатом будет null.
- Возвращает:
- ближайший существующий родительский Logger
setParent
public void setParent(Logger parent)
Его не следует вызывать из кода приложения.
- Параметры:
-
parent— новый родительский регистратор
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.