Logging in 文件
要将日志记录信息写入文件,必须使用org.apache.log4j.FileAppender 。
FileAppender配置
FileAppender具有以下可配置参数:
属性 | 描述 |
---|---|
immediateFlush | 默认情况下,此标志设置为true,这意味着每个追加操作都会刷新文件的输出流。 |
encoding | 可以使用任何字符编码。 默认情况下,它是特定于平台的编码方案。 |
threshold | 此追加者的阈值级别。 |
Filename | 日志文件的名称。 |
fileAppend | 默认设置为true,这意味着日志信息将附加到同一文件的末尾。 |
bufferedIO | 此标志指示是否需要启用缓冲写入。 默认情况下,它设置为false。 |
bufferSize | 如果启用了缓冲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
如果您希望XML配置文件等同于上面的log4j.properties文件,那么这里是内容:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="FILE">
<param name="file" value="${log}/log.out"/>
<param name="immediateFlush" value="true"/>
<param name="threshold" value="debug"/>
<param name="append" value="false"/>
<layout>
<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 - Sample Program 。
登录多个文件
出于某些原因,您可能希望将日志消息写入多个文件,例如,如果文件大小达到某个阈值。
要将日志记录信息写入多个文件,必须使用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 - Sample Program 。
每日日志文件生成
可能需要每天生成日志文件以保持日志信息的清晰记录。
要每天将日志记录信息写入文件,您必须使用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 - Sample Program 。