Spec-Zone.ru › OpenJDK 25

Класс 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> обозначает полное имя класса обработчика. Если свойства не заданы (или имеют недопустимые значения), используются указанные значения по умолчанию.

  • <handler-name>.level задаёт уровень по умолчанию для Handler (по умолчанию Level.INFO).
  • <handler-name>.filter задаёт имя класса Filter (по умолчанию Filter не используется).
  • <handler-name>.formatter задаёт имя класса Formatter (по умолчанию java.util.logging.SimpleFormatter).
  • <handler-name>.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)
Изменяет выходной поток.

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

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

Методы, объявленные в классе 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.

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

publish

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

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

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

Определено в:
publish в классе Handler
Требования к реализации:
Этот метод не захватывает блокировки во время форматирования LogRecord, но экземпляр this синхронизируется при записи в выходной поток. Чтобы избежать риска взаимной блокировки, подклассы не должны удерживать блокировки при вызове super.publish(). В частности, подклассы не должны объявлять переопределённый метод publish() как synchronized, если они вызывают super.publish().
Параметры:
record — описание события журнала. Запись null игнорируется без уведомления и не публикуется

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()
Закрывает текущий выходной поток.

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

Определено в:
close в классе Handler

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.logging/java/util/logging/StreamHandler.html

Spec-Zone.ru

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