- log4j 教程
- log4j - 首页
- log4j - 概述
- log4j - 安装
- log4j - 架构
- log4j - 配置
- log4j - 示例程序
- log4j - 日志记录方法
- log4j - 日志级别
- log4j - 日志格式
- log4j - 文件日志记录
- log4j - 数据库日志记录
- log4j 有用资源
- log4j - 常见问题解答
- log4j - 快速指南
- log4j - 有用资源
- log4j - 讨论
log4j - 文件日志记录
要将日志信息写入文件,您必须使用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
如果您希望拥有与上述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 - 示例程序。
多文件日志记录
出于某些原因,您可能希望将日志消息写入多个文件,例如,如果文件大小达到某个阈值。
要将日志信息写入多个文件,您必须使用扩展FileAppender类并继承其所有属性的org.apache.log4j.RollingFileAppender类。
除了上面提到的 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=5MB # 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 配置文件,您可以生成与初始部分中提到的相同的 XML 文件,并仅添加与RollingFileAppender相关的附加参数。
此示例配置演示了每个日志文件的最大允许大小为 5 MB。超过最大大小时,将创建一个新的日志文件。由于maxBackupIndex定义为 2,一旦第二个日志文件达到最大大小,第一个日志文件将被擦除,此后,所有日志信息将回滚到第一个日志文件。
您可以使用上述配置尝试log4j - 示例程序。
每日日志文件生成
可能需要每天生成日志文件,以便保持日志信息的清晰记录。
要每天将日志信息写入文件,您必须使用扩展FileAppender类并继承其所有属性的org.apache.log4j.DailyRollingFileAppender类。
除了上面提到的 FileAppender 的可配置参数外,只有一个重要的可配置参数:
属性 | 描述 |
---|---|
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 配置文件,您可以生成与初始部分中提到的相同的 XML 文件,并仅添加与DailyRollingFileAppender相关的附加参数。
您可以使用上述配置尝试log4j - 示例程序。