Класс 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 |
Создаёт StreamHandler с заданным Formatter и потоком вывода. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрыть текущий поток вывода. |
void |
flush() |
Очистить любые буферизованные сообщения. |
boolean |
isLoggable |
Проверить, будет ли данный Handler фактически записывать заданное LogRecord. |
void |
publish |
Форматировать и опубликовать LogRecord. |
void |
setEncoding |
Установить (или изменить) кодировку символов, используемую этим Handler. |
protected void |
setOutputStream |
Изменить поток вывода. |
Методы, объявленные в классе java.util.logging.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) 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, если поток вывода еще не назначен или запись журнала равна null.
- Переопределяет:
-
isLoggableв классеHandler - Параметры:
-
record- запись журнала (может быть null). - Возвращает:
- true, если
LogRecordбудет записано.
flush
public void flush()
- Определено в:
-
flushв классеHandler
close
public void close() throws SecurityException
Строка "хвоста" Formatter записывается в поток перед его закрытием. Кроме того, если строка "заголовка" Formatter еще не была записана в поток, она будет записана перед строкой "хвоста".
- Определено в:
-
closeв классеHandler - Исключения:
-
SecurityException- если менеджер безопасности существует и вызывающая сторона не имеет LoggingPermission("control").
© 1993, 2021, 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/17/docs/api/java.logging/java/util/logging/StreamHandler.html