Учебники

log4j — вход в файлы

Чтобы записать свою регистрационную информацию в файл, вам необходимо использовать org.apache.log4j.FileAppender .

Конфигурация FileAppender

FileAppender имеет следующие настраиваемые параметры:

Имущество Описание
immediateFlush Этот флаг по умолчанию имеет значение true, что означает, что поток вывода в файл сбрасывается при каждой операции добавления.
кодирование Можно использовать любую кодировку символов. По умолчанию это специфичная для платформы схема кодирования.
порог Пороговый уровень для этого приложения.
Имя файла Имя файла журнала.
FileAppend По умолчанию установлено значение true, что означает, что информация о журнале добавляется в конец того же файла.
bufferedIO Этот флаг указывает, нужно ли нам включить буферизованную запись. По умолчанию установлено значение false.
размер буфера Если буферизованный ввод / вывод включен, он указывает размер буфера. По умолчанию он установлен на 8 КБ.

Ниже приведен пример файла конфигурации log4j.properties для FileAppender.

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite
log4j.appender.FILE.Append=false

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

Если вы хотите иметь файл конфигурации XML, эквивалентный указанному выше файлу log4j.properties , то вот содержимое:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>

<appender name="FILE" class="org.apache.log4j.FileAppender">

   <param name="file" value="${log}/log.out"/>
   <param name="immediateFlush" value="true"/>
   <param name="threshold" value="debug"/>
   <param name="append" value="false"/>
   
   <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern" value="%m%n"/>
   </layout>
</appender>

<logger name="log4j.rootLogger" additivity="false">
   <level value="DEBUG"/>
   <appender-ref ref="FILE"/>
</logger>

</log4j:configuration>

Вы можете попробовать log4j — пример программы с вышеуказанной конфигурацией.

Вход в несколько файлов

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

Чтобы записать информацию о регистрации в несколько файлов, вам необходимо использовать класс org.apache.log4j.RollingFileAppender, который расширяет класс FileAppender и наследует все его свойства.

У нас есть следующие настраиваемые параметры в дополнение к упомянутым выше для FileAppender:

Имущество Описание
MaxFileSize Это критический размер файла, выше которого файл будет свернут. Значение по умолчанию составляет 10 МБ.
maxBackupIndex Это свойство обозначает количество создаваемых файлов резервных копий. Значением по умолчанию является 1.

Ниже приведен пример файла конфигурации log4j.properties для RollingFileAppender.

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.RollingFileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true

# Set the maximum file size before rollover
log4j.appender.FILE.MaxFileSize=5KB

# Set the the backup index
log4j.appender.FILE.MaxBackupIndex=2

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

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

Этот пример конфигурации демонстрирует, что максимально допустимый размер каждого файла журнала составляет 5 МБ. При превышении максимального размера будет создан новый файл журнала. Поскольку maxBackupIndex определено как 2, как только второй файл журнала достигнет максимального размера, первый файл журнала будет удален, и после этого вся информация журнала будет откатана до первого файла журнала.

Вы можете попробовать log4j — пример программы с вышеуказанной конфигурацией.

Генерация ежедневного журнала

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

Чтобы ежедневно записывать информацию о журналировании в файлы, вы должны будете использовать класс org.apache.log4j.DailyRollingFileAppender, который расширяет класс FileAppender и наследует все его свойства.

Существует только один важный настраиваемый параметр в дополнение к упомянутым выше для FileAppender:

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

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

DatePattern Описание
» гггг-ММ Перевернитесь в конце каждого месяца и в начале следующего месяца.
» YYYY-MM-дд Перевернитесь в полночь каждый день. Это значение по умолчанию.
» гггг-ММ-дд-а Перевернитесь в полдень и полночь каждого дня.
» гггг-ММ-дд-НН Переверните вверху каждого часа.
» гггг-ММ-дд-мм-НН Перевернись каждую минуту.
» гггг-WW Сверните в первый день каждой недели в зависимости от региона.

Ниже приведен пример файла конфигурации log4j.properties для создания файлов журналов, обновляемых в полдень и полночь каждого дня.

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true

# Set the DatePattern
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

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

Вы можете попробовать log4j — пример программы с вышеуказанной конфигурацией.