Spec-Zone.ru › OpenJDK 8

Класс MemoryHandler

  • java.lang.Object
    • java.util.logging.Handler
      • java.util.logging.MemoryHandler

public class MemoryHandler
extends Handler

Handler, которая буферизует запросы в круговой буфер в памяти.

Обычно этот Handler просто хранит входящие LogRecords в свой буфер памяти и удаляет более ранние записи. Такая буферизация очень дешевая и избегает затрат на форматирование. При определенных условиях срабатывания MemoryHandler будет отправлять содержимое своего текущего буфера в целевой Handler, который обычно опубликует их во внешнем мире.

Существует три основных модели для запуска отправки буфера:

  • Входящий LogRecord имеет тип, превышающий предварительно определенный уровень, pushLevel.
  • Внешний класс явно вызывает метод push.
  • Подкласс переопределяет метод log и сканирует каждый входящий LogRecord и вызывает push, если запись соответствует некоторым желаемым критериям.

Настройка: По умолчанию каждый MemoryHandler инициализируется с использованием следующих свойств конфигурации LogManager, где <handler-name> относится к полному имени класса обработчика. Если свойства не определены (или имеют недопустимые значения), используются указанные значения по умолчанию. Если значение по умолчанию не определено, выбрасывается исключение RuntimeException.

  • <имя-обработчика>.level указывает уровень для Handler (по умолчанию Level.ALL).
  • <имя-обработчика>.filter указывает имя класса Filter для использования (по умолчанию без Filter).
  • <имя-обработчика>.size определяет размер буфера (по умолчанию 1000).
  • <имя-обработчика>.push определяет pushLevel (по умолчанию level.SEVERE).
  • <имя-обработчика>.target указывает имя целевого класса Handler (без значения по умолчанию).

Например, свойства для MemoryHandler будут следующими:

  • java.util.logging.MemoryHandler.level=INFO
  • java.util.logging.MemoryHandler.formatter=java.util.logging.SimpleFormatter

Для настраиваемого обработчика, например com.foo.MyHandler, свойства будут следующими:

  • com.foo.MyHandler.level=INFO
  • com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter
Since:
1.4

Конструкторы

Конструктор и описание
MemoryHandler()

Создать MemoryHandler и настроить его на основе LogManager свойств конфигурации.

MemoryHandler(Handler target, int size, Level pushLevel)

Создать MemoryHandler.

Методы

Модификатор и тип Метод и описание
void close()

Закрыть Handler и освободить все связанные ресурсы.

void flush()

Вызывает сброс в целевом Handler.

Level getPushLevel()

Получить pushLevel.

boolean isLoggable(LogRecord record)

Проверить, будет ли этот Handler фактически записывать заданный LogRecord в свой внутренний буфер.

void publish(LogRecord record)

Хранить LogRecord во внутреннем буфере.

void push()

Отправить любой буферизованный вывод в целевой Handler.

void setPushLevel(Level newLevel)

Установить pushLevel.

Методы, унаследованные от класса java.util.logging.Handler

getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

MemoryHandler

public MemoryHandler()

Создать MemoryHandler и настроить его на основе LogManager свойств конфигурации.

MemoryHandler

public MemoryHandler(Handler target,
                     int size,
                     Level pushLevel)

Создать MemoryHandler.

MemoryHandler настраивается на основе LogManager свойств (или их значений по умолчанию), за исключением того, что используется переданный аргумент pushLevel и аргумент размера буфера.

Параметры:
target - обработчик, в который нужно публиковать вывод.
size - количество записей журнала для буферизации (должно быть больше нуля)
pushLevel - уровень сообщения для отправки
Исключения:
IllegalArgumentException - если size is <= 0

Подробное описание методов

publish

public void publish(LogRecord record)

Хранить LogRecord во внутреннем буфере.

Если есть Filter, вызывается его метод isLoggable, чтобы проверить, разрешена ли запись журнала. Если нет, мы возвращаемся. В противном случае заданная запись копируется во внутренний круговой буфер. Затем свойство уровня записи сравнивается с pushLevel. Если заданный уровень больше или равен pushLevel, вызывается push, чтобы записать все буферизованные записи в целевой выходной Handler.

Унаследовано от:
publish в классе Handler
Параметры:
record - описание события журнала. Нулевая запись игнорируется и не публикуется

push

public void push()

Отправить любой буферизованный вывод в целевой Handler.

Затем буфер очищается.

flush

public void flush()

Вызывает сброс в целевом Handler.

Обратите внимание, что текущее содержимое буфера MemoryHandler не записывается. Для этого требуется операция "push".

Унаследовано от:
flush в классе Handler

close

public void close()
           throws SecurityException

Закрыть Handler и освободить все связанные ресурсы. Это также закроет целевой Handler.

Унаследовано от:
close в классе Handler
Исключения:
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет LoggingPermission("control").

setPushLevel

public void setPushLevel(Level newLevel)
                  throws SecurityException

Установить pushLevel. После копирования LogRecord в наш внутренний буфер, если его уровень больше или равен pushLevel, вызывается push.

Параметры:
newLevel - новое значение pushLevel
Исключения:
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет LoggingPermission("control").

getPushLevel

public Level getPushLevel()

Получить pushLevel.

Возвращает:
значение pushLevel

isLoggable

public boolean isLoggable(LogRecord record)

Проверить, будет ли этот Handler фактически записывать заданный LogRecord в свой внутренний буфер.

Этот метод проверяет, соответствует ли LogRecord нужному уровню и удовлетворяет ли он любым Filter. Однако он не проверяет, приведет ли LogRecord к "отправке" содержимого буфера. Он вернет false, если LogRecord равно null.

Переопределяет:
isLoggable в классе Handler
Параметры:
record - запись журнала
Возвращает:
true, если запись журнала будет записана.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API