Spec-Zone.ru › OpenJDK 17

Класс 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 указывает, следует ли добавлять данные в существующие файлы (по умолчанию false).
  • <handler-name>.maxLocks указывает максимальное количество одновременных блокировок, удерживаемых FileHandler (по умолчанию 100).

Например, свойства для 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 обычно приведет к записи логов в Solaris в /var/tmp/java0.log и /var/tmp/java1.log, а в Windows 95 - в C:\TEMP\java0.log и C:\TEMP\java1.log.

Номера генераций следуют последовательности 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(String pattern, boolean append)
Инициализирует обработчик для записи в указанный файл с опциональным добавлением.
FileHandler(String pattern, int limit, int count)
Инициализирует обработчик для записи в набор файлов.
FileHandler(String pattern, int limit, int count, boolean append)
Инициализирует обработчик для записи в набор файлов с опциональным добавлением.
FileHandler(String pattern, long limit, int count, boolean append)
Инициализирует обработчик для записи в набор файлов с опциональным добавлением.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает все файлы.
void publish(LogRecord record)
Форматирует и публикует запись лога.

Методы, унаследованные от класса 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
Создать обработчик по умолчанию. Он будет полностью сконфигурирован на основе свойств LogManager (или их значений по умолчанию).
Возбуждает:
IOException - если возникли проблемы ввода-вывода при открытии файлов.
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет LoggingPermission("control")).
NullPointerException - если свойство pattern является пустой строкой.

FileHandler

public FileHandler(String pattern) throws IOException, SecurityException
Инициализировать обработчик FileHandler для записи в указанный файл.

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

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

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

FileHandler

public FileHandler(String pattern, boolean append) throws IOException, SecurityException
Инициализировать обработчик FileHandler для записи в указанный файл с опциональным добавлением.

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

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

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

FileHandler

public FileHandler(String pattern, int limit, int count) throws IOException, SecurityException
Инициализировать обработчик FileHandler для записи в набор файлов. Когда (приблизительно) заданный предел достигнут в одном файле, откроется другой файл. Вывод будет циклически переключаться между набором файлов.

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

Значение 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 для записи в набор файлов с опциональным добавлением. Когда (приблизительно) заданный предел достигнут в одном файле, откроется другой файл. Вывод будет циклически переключаться между набором файлов.

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

Значение count должно быть не меньше 1.

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

FileHandler

public FileHandler(String pattern, long limit, int count, boolean append) throws IOException
Инициализировать обработчик FileHandler для записи в набор файлов с опциональным добавлением. Когда (приблизительно) заданный предел достигнут в одном файле, откроется другой файл. Вывод будет циклически переключаться между набором файлов.

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

Значение count должно быть не меньше 1.

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

Подробное описание методов

publish

public void publish(LogRecord record)
Форматировать и опубликовать LogRecord.
Переопределяет:
publish в классе StreamHandler
Параметры:
record - описание события логирования. Нулевой объект игнорируется и не публикуется.

close

public void close() throws SecurityException
Закрыть все файлы.
Переопределяет:
close в классе StreamHandler
Возбуждает:
SecurityException - если менеджер безопасности существует и у вызывающего объекта нет LoggingPermission("control").

© 1993, 2021, 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/17/docs/api/java.logging/java/util/logging/FileHandler.html

Spec-Zone.ru

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