Класс 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" — уникальное число для разрешения конфликтов
- "%%" — заменяется на один символ процента "%"
Например, шаблон "%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 |
Инициализирует FileHandler для записи в указанный файл. |
FileHandler |
Инициализирует FileHandler для записи в указанный файл, с опцией добавления. |
FileHandler |
Инициализирует FileHandler для записи в набор файлов. |
FileHandler |
Инициализирует FileHandler для записи в набор файлов с опцией добавления. |
FileHandler |
Инициализирует FileHandler для записи в набор файлов с опцией добавления. |
Краткое описание методов
Методы, объявленные в классе java.util.logging.StreamHandler
flush, isLoggable, setEncoding, setOutputStream
Методы, объявленные в классе java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
Подробное описание конструкторов
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
© 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