Класс 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, строка "головки" 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()
Очищает любые буферизованные сообщения.
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.