Класс 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 |
Создаёт StreamHandler с заданными Formatter и выходным потоком. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает текущий выходной поток. |
void |
flush() |
Сбрасывает все буферизованные сообщения. |
boolean |
isLoggable |
Проверяет, будет ли этот Handler действительно записывать заданную LogRecord. |
void |
publish |
Форматирует и публикует LogRecord. |
void |
setEncoding |
Задаёт (или изменяет) кодировку символов, используемую этим Handler. |
protected void |
setOutputStream |
Изменяет выходной поток. |
Методы, объявленные в классе Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
Подробное описание конструкторов
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
close
© 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