Класс 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, без текущего потока вывода.

StreamHandler​(OutputStream out, Formatter formatter)

Создает StreamHandler с заданным Formatter и потоком вывода.

Методы

Модификатор и типМетодОписание
voidclose()

Закрыть текущий поток вывода.

voidflush()

Очистить любые буферизованные сообщения.

booleanisLoggable​(LogRecord record)

Проверить, будет ли этот Handler фактически регистрировать данное LogRecord.

voidpublish​(LogRecord record)

Форматировать и опубликовать LogRecord.

voidsetEncoding​(String encoding)

Установить (или изменить) кодировку символов, используемую этим Handler.

protected voidsetOutputStream​(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()

Очистить любые буферизованные сообщения.

Указано в:
flush в классе Handler

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

Spec-Zone .ru
спецификации, руководства, описания, API