Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
String getEncoding()
Возвращает кодировку символов для этого Handler.
ErrorManager getErrorManager()
Получает ErrorManager для этого обработчика.
Filter getFilter()
Получает текущий Filter для этого Handler.
Formatter getFormatter()
Возвращает Formatter для этого Handler.
Level getLevel()
Получает уровень ведения журнала, определяющий, какие сообщения будут записываться этим Handler.
protected void reportError(String msg, Exception ex, int code)
Защищенный вспомогательный метод для передачи ошибки в ErrorManager этого обработчика.
void setErrorManager(ErrorManager em)
Задает ErrorManager для этого обработчика.
void setFilter(Filter newFilter)
Задает Filter для управления выводом в этом Handler.
void setFormatter(Formatter newFormatter)
Задает Formatter.
void setLevel(Level newLevel)
Задает уровень ведения журнала, определяющий, сообщения каких уровней будут записываться этим Handler.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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