要将信息记录到文件中,请使用org.apache.log4j.FileAppender。
下表列出了FileAppender的可配置参数。
属性描述immediateFlush默认值为true。刷新每个追加操作的消息。encoding更改字符编码。默认为平台特定的编码方案。threshold此附加器的阈值级别。Filename日志文件的名称。fileAppend默认为true。将日志记录信息附加到同一文件的结尾。bufferedIO是否缓冲写入。默认为false。bufferSize如果启用了缓冲I/O,请设置缓冲区大小。默认值为8kb。
例子
以下是FileAppender的配置文件示例log4j.properties。
# Define the root logger with appender filelog4j.rootLogger = DEBUG, FILE# Define the file appenderlog4j.appender.FILE=org.apache.log4j.FileAppender# file namelog4j.appender.FILE.File=${log}/log.out # Set the flush to truelog4j.appender.FILE.ImmediateFlush=true# Set the threshold to debug modelog4j.appender.FILE.Threshold=debug# Set the append to true, overwritelog4j.appender.FILE.Append=true# Define the layout for file appenderlog4j.appender.FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.FILE.layout.conversionPattern=%m%n
登录多个文件
我们可能希望将消息记录到多个文件中,例如,如果文件大小达到某个阈值,我们希望将消息记录到一个新文件。
要将信息记录到多个文件中,请使用org.apache.log4j.RollingFileAppender类,该类扩展了FileAppender类并继承其所有属性。
下表列出了除FileAppender提到的可配置参数外:
描述描述maxFileSize将滚动文件的文件的最大大小。 默认值为10MBmaxBackupIndex设置要创建的备份文件数。默认值为1。
以下示例显示了RollingFileAppender的示例配置文件log4j.properties。
# Define the root logger with appender filelog4j.rootLogger = DEBUG, FILE# Define the file appenderlog4j.appender.FILE=org.apache.log4j.RollingFileAppender# file namelog4j.appender.FILE.File=${log}/log.out# Set the maximum file size before rolloverlog4j.appender.FILE.MaxFileSize=5KB# Set the the backup indexlog4j.appender.FILE.MaxBackupIndex=2
每日日志文件
要每天生成日志文件,请使用org.apache.log4j.DailyRollingFileAppender类扩展FileAppender类。
DatePattern 控制何时滚动文件。
描述描述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 filelog4j.rootLogger = DEBUG, FILE# Define the file appenderlog4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender# Set the name of the filelog4j.appender.FILE.File=${log}/log.out# Set the DatePatternlog4j.appender.FILE.DatePattern="." yyyy-MM-dd-a
![7858d1bfb95ad34cbf4e962bf9911df2.png](https://i-blog.csdnimg.cn/blog_migrate/8affe46a3141d3ec4ebd17f7c2fb430c.jpeg)