Spec-Zone.ru › OpenJDK 8

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

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)

Изменяет поток вывода.

Методы, унаследованные от класса 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, строка "головки" Formatter записывается в поток перед записью LogRecord.

Определяет:
publish в классе Handler
Параметры:
record - описание события журнала. Null-запись игнорируется и не публикуется

isLoggable

public boolean isLoggable(LogRecord record)

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

Этот метод проверяет, имеет ли LogRecord соответствующий уровень и удовлетворяет ли какие-либо Filter. Он также вернет false, если еще не назначен поток вывода или LogRecord равен null.

Переопределяет:
isLoggable в классе Handler
Параметры:
record - LogRecord
Возвращает:
true, если LogRecord будет зарегистрировано.

flush

public void flush()

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

Определяет:
flush в классе Handler

close

public void close()
           throws SecurityException

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

Строка "хвоста" Formatter записывается в поток перед его закрытием. Кроме того, если строка "головки" Formatter еще не была записана в поток, она будет записана перед строкой "хвоста".

Определяет:
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.

Spec-Zone.ru

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