log4j登录文件


要将日志信息写入文件,您必须使用 org.apache.log4j.FileAppender

FileAppender配置

FileAppender具有以下可配置参数:

属性 描述
immediateFlush 该标志默认设置为true,这意味着每次追加操作都会刷新文件的输出流。
编码 可以使用任何字符编码。默认情况下,它是平台特定的编码方案。
此appender的阈值级别。
文件名 日志文件的名称。
fileAppend 这是默认设置为true,这意味着日志信息被追加到同一个文件的末尾。
bufferedIO 该标志指示我们是否需要启用缓冲写入。默认情况下,它被设置为false。
缓冲区大小 如果启用了缓冲I / O,则表示缓冲区大小。默认情况下,它被设置为8kb。

以下是FileAppender 的示例配置文件 log4j.properties -

# 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

如果您希望具有与上述 log4j.properties 文件等效的XML配置文件,那么这里是内容:

<?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 MB。
maxBackupIndex 该属性表示要创建的备份文件的数量。默认值是1。

以下是RollingFileAppender 的示例配置文件 log4j.properties

# 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 MB。超过最大大小后,将创建一个新的日志文件。由于 maxBackupIndex 被定义为2,所以一旦第二个日志文件达到最大大小,第一个日志文件将被清除,之后所有日志信息将被回滚到第一个日志文件。

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

每日日志文件生成

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

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

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

属性 描述
DatePattern 这表明何时翻转文件和遵循命名约定。默认情况下,翻转在每天午夜进行。

DatePattern使用以下模式之一控制翻转计划:

DatePattern 描述
'' YYYY-MM 在每个月底和下个月初翻身。
'' YYYY-MM-DD 每天午夜翻身。这是默认值。
'' YYYY-MM-DD-A 每天中午和午夜翻身。
'' YYYY-MM-DD-HH 在每小时的顶部滚动。
'' YYYY-MM-DD-HH-毫米 翻滚每一分钟。
'' YYYY-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 - 示例程序