Spec-Zone.ru › OpenJDK 8

Класс FileHandler

  • java.lang.Object
    • java.util.logging.Handler
      • java.util.logging.StreamHandler
        • java.util.logging.FileHandler

public class FileHandler
extends StreamHandler

Простая запись логов в файлы Handler.

Класс может записывать данные в указанный файл или в набор вращающихся файлов.

При использовании вращающихся файлов, по достижении установленного лимита размера файла, он закрывается, и открывается новый файл. Последовательно более старые файлы будут именоваться добавлением "0", "1", "2" и т.д. к имени базового файла.

По умолчанию буферизация включена в библиотеках ввода-вывода, но каждый записываемый лог-запись сбрасывается в поток, когда запись завершена.

По умолчанию для форматирования используется класс XMLFormatter .

Конфигурация: Каждый FileHandler инициализируется по умолчанию используя следующие свойства конфигурации LogManager, где <handler-name> обозначает полное имя класса обработчика. Если свойства не заданы (или имеют некорректные значения), используются заданные значения по умолчанию.

  • <handler-name>.level указывает уровень по умолчанию для Handler (по умолчанию Level.ALL).
  • <handler-name>.filter указывает имя класса Filter для использования (по умолчанию без Filter).
  • <handler-name>.formatter указывает имя класса Formatter для использования (по умолчанию java.util.logging.XMLFormatter)
  • <handler-name>.encoding имя кодировки символов для использования (по умолчанию кодировка по умолчанию платформы).
  • <handler-name>.limit указывает приблизительный максимальный размер записи (в байтах) в любом одном файле. Если значение равно нулю, лимита нет. (По умолчанию лимита нет).
  • <handler-name>.count указывает количество файлов вывода, которые будут циклически использоваться (по умолчанию 1).
  • <handler-name>.pattern указывает шаблон для генерации имени выходного файла. Подробности см. ниже. (По умолчанию "%h/java%u.log").
  • <handler-name>.append указывает, должен ли FileHandler добавлять записи в существующие файлы (по умолчанию false).

Например, свойства для FileHandler будут следующими:

  • java.util.logging.FileHandler.level=INFO
  • java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

Для пользовательского обработчика, например com.foo.MyHandler, свойства будут:

  • com.foo.MyHandler.level=INFO
  • com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter

Шаблон состоит из строки, которая включает следующие специальные компоненты, которые будут заменены во время выполнения:

  • "/" разделитель пути
  • "%t" временная директория системы
  • "%h" значение системной переменной "user.home"
  • "%g" номер генерации для различения вращающихся логов
  • "%u" уникальное число для разрешения конфликтов
  • "%%" преобразуется в одиночный знак процента "%"
Если поле "%g" не указано, а количество файлов больше единицы, то номер генерации будет добавлен в конец сгенерированного имени файла после точки.

Таким образом, например, шаблон "%t/java%g.log" с количеством 2 обычно приведет к записи лог-файлов в /var/tmp/java0.log и /var/tmp/java1.log на Solaris и в C:\TEMP\java0.log и C:\TEMP\java1.log на Windows 95.

Номера генераций следуют последовательности 0, 1, 2 и т.д.

Обычно поле "%u" уникального номера устанавливается в 0. Однако, если FileHandler пытается открыть файл и обнаруживает, что файл используется другим процессом, оно увеличивает поле уникального номера и пытается снова. Это будет повторяться, пока FileHandler не найдет имя файла, которое не используется. Если возникает конфликт и поле "%u" не указано, оно будет добавлено в конец имени файла после точки. (Это будет после любого автоматически добавленного номера генерации).

Таким образом, если три процесса пытаются записывать в fred%u.%g.txt, они могут получить fred0.0.txt, fred1.0.txt, fred2.0.txt в качестве первых файлов своих вращающихся последовательностей.

Обратите внимание, что использование уникальных идентификаторов для предотвращения конфликтов гарантированно работает только надежно при использовании локальной файловой системы.

Since:
1.4

Конструкторы

Конструктор и описание
FileHandler()

Создает обработчик по умолчанию FileHandler.

FileHandler(String pattern)

Инициализирует FileHandler для записи в указанный файл.

FileHandler(String pattern, boolean append)

Инициализирует FileHandler для записи в указанный файл с опциональным добавлением к существующим данным.

FileHandler(String pattern, int limit, int count)

Инициализирует FileHandler для записи в набор файлов.

FileHandler(String pattern, int limit, int count, boolean append)

Инициализирует FileHandler для записи в набор файлов с опциональным добавлением к существующим данным.

Методы

Модификатор и тип Метод и описание
void close()

Закрывает все файлы.

void publish(LogRecord record)

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

Методы, унаследованные от класса java.util.logging.StreamHandler

flush, isLoggable, setEncoding, setOutputStream

Методы, унаследованные от класса 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

Конструкторы

FileHandler

public FileHandler()
            throws IOException,
                   SecurityException

Создайте FileHandler по умолчанию. Он будет полностью сконфигурирован на основе свойств LogManager (или их значений по умолчанию).

Исключение:
IOException - если возникли проблемы с вводом/выводом при открытии файлов.
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет LoggingPermission("control")).
NullPointerException - если свойство pattern является пустой строкой.

FileHandler

public FileHandler(String pattern)
            throws IOException,
                   SecurityException

Инициализируйте FileHandler для записи в указанный файл.

FileHandler настраивается на основе свойств LogManager (или их значений по умолчанию), за исключением того, что заданный аргумент pattern используется в качестве шаблона имени файла, предел файлов устанавливается как неограниченный, а количество файлов устанавливается на 1.

Ограничений на количество записываемых данных нет, поэтому используйте с осторожностью.

Параметры:
pattern - имя выходного файла
Исключение:
IOException - если возникли проблемы с вводом/выводом при открытии файлов.
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет LoggingPermission("control").
IllegalArgumentException - если pattern является пустой строкой

FileHandler

public FileHandler(String pattern,
                   boolean append)
            throws IOException,
                   SecurityException

Инициализируйте FileHandler для записи в указанный файл с опциональным добавлением.

FileHandler настраивается на основе свойств LogManager (или их значений по умолчанию), за исключением того, что заданный аргумент pattern используется в качестве шаблона имени файла, предел файлов устанавливается как неограниченный, количество файлов устанавливается на 1, а режим добавления устанавливается в соответствии с заданным аргументом append.

Ограничений на количество записываемых данных нет, поэтому используйте с осторожностью.

Параметры:
pattern - имя выходного файла
append - указывает режим добавления
Исключение:
IOException - если возникли проблемы с вводом/выводом при открытии файлов.
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет LoggingPermission("control").
IllegalArgumentException - если pattern является пустой строкой

FileHandler

public FileHandler(String pattern,
                   int limit,
                   int count)
            throws IOException,
                   SecurityException

Инициализируйте FileHandler для записи в набор файлов. Когда (приблизительно) заданный предел достигнут в одном файле, будет открыт другой файл. Вывод будет циклически переключаться между набором файлов с указанным количеством.

FileHandler настраивается на основе свойств LogManager (или их значений по умолчанию), за исключением того, что заданный аргумент pattern используется в качестве шаблона имени файла, предел файлов устанавливается в значение аргумента limit, а количество файлов устанавливается в заданное значение аргумента count.

Количество файлов должно быть не менее 1.

Параметры:
pattern - шаблон для именования выходного файла
limit - максимальное количество байтов для записи в любой один файл
count - количество используемых файлов
Исключение:
IOException - если возникли проблемы с вводом/выводом при открытии файлов.
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет LoggingPermission("control").
IllegalArgumentException - если limit < 0, или count < 1.
IllegalArgumentException - если pattern является пустой строкой

FileHandler

public FileHandler(String pattern,
                   int limit,
                   int count,
                   boolean append)
            throws IOException,
                   SecurityException

Инициализируйте FileHandler для записи в набор файлов с опциональным добавлением. Когда (приблизительно) заданный предел достигнут в одном файле, будет открыт другой файл. Вывод будет циклически переключаться между набором файлов с указанным количеством.

FileHandler настраивается на основе свойств LogManager (или их значений по умолчанию), за исключением того, что заданный аргумент pattern используется в качестве шаблона имени файла, предел файлов устанавливается в значение аргумента limit, а количество файлов устанавливается в заданное значение аргумента count, и режим добавления устанавливается в соответствии с аргументом append.

Количество файлов должно быть не менее 1.

Параметры:
pattern - шаблон для именования выходного файла
limit - максимальное количество байтов для записи в любой один файл
count - количество используемых файлов
append - указывает режим добавления
Исключение:
IOException - если возникли проблемы с вводом/выводом при открытии файлов.
SecurityException - если менеджер безопасности существует и вызывающий объект не имеет LoggingPermission("control").
IllegalArgumentException - если limit < 0, или count < 1.
IllegalArgumentException - если pattern является пустой строкой

Методы

publish

public void publish(LogRecord record)

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

Переопределяет:
publish в классе StreamHandler
Параметры:
record - описание события логирования. Null-объект игнорируется и не публикуется

close

public void close()
           throws SecurityException

Закрыть все файлы.

Переопределяет:
close в классе StreamHandler
Исключение:
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