Класс LogRecord
- java.lang.Object
-
- java.util.logging.LogRecord
- Все реализуемые интерфейсы:
Serializable
public class LogRecord extends Object implements Serializable
Объекты LogRecord используются для передачи запросов журналирования между фреймворком журналирования и отдельными обработчиками журналов.
Когда объект LogRecord передается в фреймворк журналирования, он логически принадлежит фреймворку и больше не должен использоваться или обновляться приложением-клиентом.
Обратите внимание, что если приложение-клиент не указал явное имя метода источника и имя класса источника, то класс LogRecord автоматически выведет их при первом обращении (из-за вызова getSourceMethodName или getSourceClassName), проанализировав стек вызовов. Поэтому, если обработчик журналирования хочет передать LogRecord другому потоку или передать его через RMI, и если он хочет получить информацию о имени метода или имени класса, он должен вызвать один из getSourceClassName или getSourceMethodName, чтобы принудительно заполнить эти значения.
Примечания по сериализации:
- Класс LogRecord поддерживает сериализацию.
- Так как объекты в массиве параметров могут быть не сериализуемыми, во время сериализации все объекты в массиве параметров записываются как соответствующие строки (используя Object.toString).
- ResourceBundle не передается как часть сериализованной формы, но имя ресурсного пакета передается, и метод readObject объекта-получателя попытается найти подходящий ресурсный пакет.
- С:
- 1.4
- См. также:
- Сериализованная форма
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LogRecord(Level level,
String msg) | Создает LogRecord с заданными уровнем и сообщением. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Instant | getInstant() | Получает момент времени события. |
Level | getLevel() | Получает уровень сообщения журналирования, например, Level.SEVERE. |
String | getLoggerName() | Получает имя источника Logger. |
String | getMessage() | Получает "сырое" сообщение журнала до локализации или форматирования. |
long | getMillis() | Получает усеченное время события в миллисекундах с 1970 года. |
Object[] | getParameters() | Получает параметры сообщения журнала. |
ResourceBundle | getResourceBundle() | Получает ресурсный пакет локализации. |
String | getResourceBundleName() | Получает имя ресурсного пакета локализации. |
long | getSequenceNumber() | Получает номер последовательности. |
String | getSourceClassName() | Получает имя класса, который, предположительно, инициировал запрос журналирования. |
String | getSourceMethodName() | Получает имя метода, который, предположительно, инициировал запрос журналирования. |
int | getThreadID() | Получает идентификатор потока, в котором возникло сообщение. |
Throwable | getThrown() | Получает исключение, связанное с записью журнала. |
void | setInstant(Instant instant) | Устанавливает момент времени события. |
void | setLevel(Level level) | Устанавливает уровень сообщения журналирования, например, Level.SEVERE. |
void | setLoggerName(String name) | Устанавливает имя источника Logger. |
void | setMessage(String message) | Устанавливает "сырое" сообщение журнала до локализации или форматирования. |
void | setMillis(long millis) | Устаревший. LogRecord поддерживает временные метки с разрешением в наносекунды, используя значения Instant. |
void | setParameters(Object[] parameters) | Устанавливает параметры сообщения журнала. |
void | setResourceBundle(ResourceBundle bundle) | Устанавливает ресурсный пакет локализации. |
void | setResourceBundleName(String name) | Устанавливает имя ресурсного пакета локализации. |
void | setSequenceNumber(long seq) | Устанавливает номер последовательности. |
void | setSourceClassName(String sourceClassName) | Устанавливает имя класса, который, предположительно, инициировал запрос журналирования. |
void | setSourceMethodName(String sourceMethodName) | Устанавливает имя метода, который, предположительно, инициировал запрос журналирования. |
void | setThreadID(int threadID) | Устанавливает идентификатор потока, в котором возникло сообщение. |
void | setThrown(Throwable thrown) | Устанавливает исключение, связанное с событием журнала. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
LogRecord
public LogRecord(Level level,
String msg) Создаёт LogRecord с заданным уровнем и сообщением.
Свойство последовательности будет инициализировано новым уникальным значением. Эти значения последовательности распределяются в возрастающем порядке внутри виртуальной машины.
Начиная с JDK 9, время события представлено в формате Instant. Свойство instant будет инициализировано текущим значением текущего момента с использованием наилучшего доступного часов системы.
Свойство идентификатора потока будет инициализировано уникальным идентификатором текущего потока.
Все остальные свойства будут инициализированы значением "null".
- Параметры:
-
level- значение уровня логирования -
msg- исходное, нелокализованное сообщение логирования (может быть null) - См. также:
Clock.systemUTC()
Методы
getLoggerName
public String getLoggerName()
Получить имя источника Logger.
- Возвращает:
- имя источника логгера (может быть null)
setLoggerName
public void setLoggerName(String name)
Установить имя источника Logger.
- Параметры:
-
name- имя источника логгера (может быть null)
getResourceBundle
public ResourceBundle getResourceBundle()
Получить локализованный ресурсный пакет.
Это ResourceBundle, который должен быть использован для локализации строки сообщения перед её форматированием. Результат может быть null, если сообщение не локализуемо или подходящий ResourceBundle недоступен.
- Возвращает:
- локализованный ресурсный пакет
setResourceBundle
public void setResourceBundle(ResourceBundle bundle)
Установить локализованный ресурсный пакет.
- Параметры:
-
bundle- локализованный пакет (может быть null)
getResourceBundleName
public String getResourceBundleName()
Получить имя локализованного ресурсного пакета.
Это имя ResourceBundle, который должен быть использован для локализации строки сообщения перед её форматированием. Результат может быть null, если сообщение не локализуемо.
- Возвращает:
- имя локализованного ресурсного пакета
setResourceBundleName
public void setResourceBundleName(String name)
Установить имя локализованного ресурсного пакета.
- Параметры:
-
name- имя локализованного пакета (может быть null)
getLevel
public Level getLevel()
Получить уровень сообщения логирования, например, Level.SEVERE.
- Возвращает:
- уровень сообщения логирования
setLevel
public void setLevel(Level level)
Установить уровень сообщения логирования, например, Level.SEVERE.
- Параметры:
-
level- уровень сообщения логирования
getSequenceNumber
public long getSequenceNumber()
Получить порядковый номер.
Порядковые номера обычно присваиваются в конструкторе LogRecord, который присваивает уникальные порядковые номера каждому новому LogRecord в возрастающем порядке.
- Возвращает:
- порядковый номер
setSequenceNumber
public void setSequenceNumber(long seq)
Установить порядковый номер.
Порядковые номера обычно присваиваются в конструкторе LogRecord, поэтому обычно использовать этот метод не нужно.
- Параметры:
-
seq- порядковый номер
getSourceClassName
public String getSourceClassName()
Получить имя класса, который (предположительно) выдал запрос логирования.
Обратите внимание, что это имя класса источника не проверяется и может быть поддельным. Эта информация может быть предоставлена в ходе вызова логирования или автоматически выведена фреймворком логирования. В последнем случае информация может быть приблизительной и фактически описывать предыдущий вызов в стеке.
Может быть null, если информация недоступна.
- Возвращает:
- имя класса источника
setSourceClassName
public void setSourceClassName(String sourceClassName)
Установить имя класса, который (предположительно) выдал запрос логирования.
- Параметры:
-
sourceClassName- имя класса источника (может быть null)
getSourceMethodName
public String getSourceMethodName()
Получить имя метода, который (предположительно) выдал запрос логирования.
Обратите внимание, что это имя метода источника не проверяется и может быть поддельным. Эта информация может быть предоставлена в ходе вызова логирования или автоматически выведена фреймворком логирования. В последнем случае информация может быть приблизительной и фактически описывать предыдущий вызов в стеке.
Может быть null, если информация недоступна.
- Возвращает:
- имя метода источника
setSourceMethodName
public void setSourceMethodName(String sourceMethodName)
Установить имя метода, который (предположительно) выдал запрос логирования.
- Параметры:
-
sourceMethodName- имя метода источника (может быть null)
getMessage
public String getMessage()
Получить «исходное» сообщение лога до локализации или форматирования.
Может быть null, что эквивалентно пустой строке "".
Это сообщение может быть либо окончательным текстом, либо ключом локализации.
Во время форматирования, если у источника логгера есть локализованный ResourceBundle и в нём есть запись для этой строки сообщения, то строка сообщения заменяется локализованным значением.
- Возвращает:
- исходная строка сообщения
setMessage
public void setMessage(String message)
Установить «исходное» сообщение лога до локализации или форматирования.
- Параметры:
-
message- исходная строка сообщения (может быть null)
getParameters
public Object[] getParameters()
Получить параметры сообщения лога.
- Возвращает:
- параметры сообщения лога. Может быть null, если параметров нет.
setParameters
public void setParameters(Object[] parameters)
Установить параметры сообщения лога.
- Параметры:
-
parameters- параметры сообщения лога (может быть null)
getThreadID
public int getThreadID()
Получить идентификатор потока, в котором возникло сообщение.
Это идентификатор потока внутри виртуальной машины Java и может или не может соответствовать идентификатору операционной системы.
- Возвращает:
- идентификатор потока
setThreadID
public void setThreadID(int threadID)
Установить идентификатор потока, в котором возникло сообщение.
- Параметры:
-
threadID- идентификатор потока
getMillis
public long getMillis()
Получить усеченное время события в миллисекундах с 1970 года.
- Примечание API:
- Для получения времени события с разрешением в наносекунды используйте
getInstant(). - Требования реализации:
- Эквивалентно вызову
getInstant().toEpochMilli(). - Возвращает:
- усеченное время события в миллисекундах с 1970 года
- См. также:
getInstant()
setMillis
@Deprecated public void setMillis(long millis)
Instant. По этой причине следует использовать setInstant() вместо setMillis().Установить время события.
- Требования реализации:
- Эквивалентно вызову
setInstant(Instant.ofEpochMilli(millis)). - Параметры:
-
millis- время события в миллисекундах с 1970 года. - См. также:
setInstant(java.time.Instant)
getInstant
public Instant getInstant()
Получить момент времени, когда произошло событие.
- Возвращает:
- момент времени, когда произошло событие.
- С:
- 9
setInstant
public void setInstant(Instant instant)
Установить момент времени, когда произошло событие.
Если заданный instant представляет точку на временной шкале, слишком далекую в будущем или прошлом для помещения в long миллисекунд и наносекунд, то будет выброшено исключение ArithmeticException.
- Параметры:
-
instant- момент времени, когда произошло событие. - Исключения:
-
NullPointerException- еслиinstantравно null. -
ArithmeticException- если произойдёт переполнение при вызовеinstant.toEpochMilli(). - С:
- 9
getThrown
public Throwable getThrown()
Получить исключение, связанное с записью журнала.
Если событие включало исключение, это будет объект исключения. В противном случае null.
- Возвращает:
- исключение
setThrown
public void setThrown(Throwable thrown)
Установить исключение, связанное с событием.
- Параметры:
-
thrown- исключение (может быть null)
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.logging/java/util/logging/LogRecord.html