Spec-Zone.ru › OpenJDK 21

Класс StreamHandler

java.lang.Object
java.util.logging.Handler
java.util.logging.StreamHandler
Прямые известные подклассы:
ConsoleHandler, FileHandler, SocketHandler
public class StreamHandler extends Handler
Логирование на основе потоков Handler.

В первую очередь предназначен в качестве базового или вспомогательного класса для реализации других систем Handlers.

LogRecords публикуются в заданном java.io.OutputStream.

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

  • <имя-обработчика>.level задаёт уровень по умолчанию для Handler (по умолчанию Level.INFO).
  • <имя-обработчика>.filter задаёт имя класса Filter для использования (по умолчанию нет Filter).
  • <имя-обработчика>.formatter задаёт имя класса Formatter для использования (по умолчанию java.util.logging.SimpleFormatter).
  • <имя-обработчика>.encoding задаёт имя кодировки символов для использования (по умолчанию — кодировка по умолчанию платформы).

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

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

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

  • com.foo.MyHandler.level=INFO
  • com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter
С момента:
1.4

Краткое описание конструкторов

Конструктор Описание
StreamHandler()
Создаёт StreamHandler, без текущего потока вывода.
StreamHandler(OutputStream out, Formatter formatter)
Создаёт StreamHandler с заданным Formatter и потоком вывода.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает текущий поток вывода.
void flush()
Очищает любые буферизованные сообщения.
boolean isLoggable(LogRecord record)
Проверяет, будет ли этот Handler фактически регистрировать заданное LogRecord.
void publish(LogRecord record)
Форматирует и публикует LogRecord.
void setEncoding(String encoding)
Устанавливает (или изменяет) кодировку символов, используемую этим Handler.
protected void setOutputStream(OutputStream out)
Изменяет поток вывода.

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

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

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

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

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

StreamHandler

public StreamHandler()
Создаёт StreamHandler, без текущего потока вывода.

StreamHandler

public StreamHandler(OutputStream out, Formatter formatter)
Создаёт StreamHandler с заданным Formatter и потоком вывода.
Параметры:
out - целевой поток вывода
formatter - Форматировщик, используемый для форматирования вывода

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

setOutputStream

protected void setOutputStream(OutputStream out) throws SecurityException
Изменяет поток вывода.

Если существует текущий поток вывода, то строка "хвоста" Formatter записывается, поток очищается и закрывается. Затем поток вывода заменяется новым потоком вывода.

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

setEncoding

public void setEncoding(String encoding) throws SecurityException, UnsupportedEncodingException
Устанавливает (или изменяет) кодировку символов, используемую этим Handler.

Кодировка должна быть установлена до записи любых LogRecords в Handler.

Переопределяет:
setEncoding в классе Handler
Параметры:
encoding - Имя поддерживаемой кодировки символов. Может быть null, чтобы указать кодировку по умолчанию платформы.
Исключения:
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет LoggingPermission("control").
UnsupportedEncodingException - если указанная кодировка не поддерживается.

publish

public void publish(LogRecord record)
Форматирует и публикует LogRecord.

StreamHandler сначала проверяет, есть ли OutputStream и имеет ли заданный LogRecord не ниже требуемого уровня логирования. Если нет, он молча возвращается. Если да, он вызывает любые ассоциированные Filter для проверки, нужно ли публиковать запись. Если да, он вызывает его Formatter для форматирования записи, а затем записывает результат в текущий поток вывода.

Если это первое LogRecord для записи в заданный OutputStream, строка "начала" Formatter записывается в поток перед записью LogRecord.

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

isLoggable

public boolean isLoggable(LogRecord record)
Проверяет, будет ли этот Handler фактически регистрировать заданное LogRecord.

Этот метод проверяет, имеет ли LogRecord соответствующий уровень и удовлетворяет ли он любым Filter. Он также вернёт false, если поток вывода ещё не назначен или LogRecord равен null.

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

flush

public void flush()
Очищает любые буферизованные сообщения.
Определено в:
flush в классе Handler

close

public void close() throws SecurityException
Закрывает текущий поток вывода.

Строка "хвоста" Formatter записывается в поток перед его закрытием. Кроме того, если строка "начала" Formatter ещё не была записана в поток, она будет записана перед строкой "хвоста".

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

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.logging/java/util/logging/StreamHandler.html

Spec-Zone.ru

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