Spec-Zone.ru › OpenJDK 24

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

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

FileHandler

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

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

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

Параметры:
pattern - имя выходного файла
Исключение:
IOException - если возникли проблемы ввода-вывода при открытии файлов.
IllegalArgumentException - если pattern является пустой строкой

FileHandler

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

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

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

Параметры:
pattern - имя выходного файла
append - указывает режим дописывания
Исключение:
IOException - если возникли проблемы ввода-вывода при открытии файлов.
IllegalArgumentException - если pattern является пустой строкой

FileHandler

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

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

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

Параметры:
pattern - шаблон для именования выходного файла
limit - максимальное количество байтов для записи в любой один файл
count - количество используемых файлов
Исключение:
IOException - если возникли проблемы ввода-вывода при открытии файлов.
IllegalArgumentException - если limit < 0 или count < 1.
IllegalArgumentException - если pattern является пустой строкой

FileHandler

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

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

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

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

FileHandler

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

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

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

Параметры:
pattern - шаблон для именования выходного файла
limit - максимальное количество байтов для записи в любой один файл
count - количество используемых файлов
append - указывает режим дописывания
Исключение:
IOException - если возникли проблемы ввода-вывода при открытии файлов.
IllegalArgumentException - если limit < 0 или count < 1.
IllegalArgumentException - если pattern является пустой строкой
С момента:
9

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

publish

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

close

public void close()
Закрытие всех файлов.
Переопределяет:
close в классе StreamHandler

© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.logging/java/util/logging/FileHandler.html

Spec-Zone.ru

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