log4j| log4j-日志记录到文件

时间:2025-03-23 08:21:08

要将日志记录信息写入文件,必须使用.


FileAppender配置

FileAppender具有以下可配置参数:

属性 描述
immediateFlush 标志的默认设置为true,这意味着输出流的文件被刷新,在每个追加操作
encoding 它可以使用任何字符编码。默认情况下是特定于平台的编码方案
threshold 此appender的阈值级别(rootLogger级别高时,则以rootLogger为准,比如此appender设置级别为debug,而rootlogger设置的info,则只会记录info的日志 )
Filename 日志文件的名称
fileAppend 默认设置为true,这意味着记录的信息被附加到同一文件的末尾
bufferedIO 此标志表示是否需要写入缓存启用。默认设置为false
bufferSize 如果 bufferedI/O 启用,这表示缓冲区的大小,默认设置为8KB

以下是FileAppender 的示例配置文件:

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

# Define the file appender
=.

# Set the name of the file
=${log}/

# Set the immediate flush to true (default)
=true

# Set the threshold to debug mode
=debug

# Set the append to false, overwrite
=false

# Define the layout for file appender
=.
=%m%n

如果您希望拥有一个与上述文件等效的XML配置文件,那么这里是内容:

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

<appender name="FILE" class=".">

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

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

</log4j:configuration>

您可以尝试使用上述配置的 log4j-示例程序


日志记录到多个文件

出于某些原因,例如,如果文件大小达到某个阈值,您可能希望将日志消息写入多个文件。

要将日志记录信息写入多个文件,必须使用 . 类,该类扩展了FileAppender类并继承了其所有属性。

除了上面提到的FileAppender之外,我们还有以下可配置参数:

属性 描述
maxFileSize 这是文件的临界大小,文件将在该临界大小以上滚动。默认值为10 MB。
maxBackupIndex 此属性表示要创建的备份文件的数量。预设值为1。

以下是RollingFileAppender 的示例配置文件

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

# Define the file appender
=.

# Set the name of the file
=${log}/

# Set the immediate flush to true (default)
=true

# Set the threshold to debug mode
=debug

# Set the append to false, should not overwrite
=true

# Set the maximum file size before rollover
=5KB

# Set the the backup index
=2

# Define the layout for file appender
=.
=%m%n

如果希望拥有XML配置文件,则可以生成与初始部分中所述相同的文件,并仅添加与 RollingFileAppender 相关的其他参数。
此示例配置说明每个日志文件的最大允许大小为5MB。超过最大大小后,将创建一个新的日志文件。由于maxBackupIndex定义为2,一旦第二个日志文件达到最大大小,则将删除第一个日志文件,然后,所有日志记录信息将回滚到第一个日志文件。

您可以尝试使用上述配置的log4j-示例程序


每天生成日志文件

可能需要每天生成日志文件,以保持日志信息的干净记录。

要将日志记录信息每天写入文件,必须使用 . 类,该类扩展了FileAppender类并继承了其所有属性。

除了上面提到的FileAppender之外,只有一个重要的可配置参数:

属性 描述
DatePattern 这指示何时将文件翻转以及要遵循的命名约定。默认情况下,翻转在每天的午夜执行。

DatePattern 使用以下模式之一控制滚动计划:

DatePattern 描述
'.' yyyy-MM 在每个月底和下个月初滚动。
'.' yyyy-MM-dd 每天午夜滚动。这是默认值。
'.' yyyy-MM-dd-a 在每天的中午和午夜滚动。
'.' yyyy-MM-dd-HH 每小时滚动一次。
'.' yyyy-MM-dd-HH-mm 每分钟滚动。
'.' yyyy-ww 根据语言环境,在每周的第一天进行滚动。

以下是一个示例配置文件,用于生成在每天的中午和午夜滚动的日志文件。

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

# Define the file appender
=.

# Set the name of the file
=${log}/

# Set the immediate flush to true (default)
=true

# Set the threshold to debug mode
=debug

# Set the append to false, should not overwrite
=true

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

# Define the layout for file appender
=.
=%m%n

如果希望拥有XML配置文件,则可以生成与初始部分中所述相同的文件,并仅添加与DailyRollingFileAppender相关的其他参数。
您可以尝试使用上述配置的 log4j-示例程序