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