log4j - 登录文件

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

FileAppender配置

FileAppender具有以下可配置参数:

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

以下是示例配置文件 log4j.properties for 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

如果您希望拥有与上述 log4j等效的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 :

Property描述
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之外,只有一个重要的可配置参数:

P roperty描述
DatePattern这表示何时翻转文件以及要遵循的命名约定.默认情况下,每天午夜都会进行翻转.

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

DatePattern描述
'.'yyyy-MM翻身在每个月末和下个月初.
'.'yyyy-MM-dd每天午夜翻身.这是默认值.
'.'yyyy-MM-dd -a在每天的正午和午夜翻身.
'.'yyyy-MM-dd-HH在每小时的顶部翻转.
'.'yyyy- MM-dd-HH-mm每分钟翻转一次.
' .'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  - 示例程序,具有上述配置.