Spec-Zone.ru › OpenJDK 24

Класс 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
Since:
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)
Изменяет поток вывода.

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

Параметры:
out - Новый поток вывода. Не может быть null.

setEncoding

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

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

Overrides:
setEncoding в классе Handler
Параметры:
encoding - Имя поддерживаемой кодировки символов. Может быть null, чтобы указать кодировку по умолчанию платформы.
Исключения:
UnsupportedEncodingException - если указанная кодировка не поддерживается.

publish

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

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

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

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

isLoggable

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

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

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

flush

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

close

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

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

Specified by:
close в классе Handler

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.logging/java/util/logging/StreamHandler.html

Spec-Zone.ru

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