第三百零七节 Log4j教程 - Log4j日志格式、Log4j日志到文件
Log4j教程 - Log4j日志格式
Apache log4j提供布局对象,以根据各种布局格式化日志数据。
布局类层次结构中的顶级类是抽象类org.apache.log4j.Layout。
org.apache.log4j.Layout是log4j API中所有其他Layout类的基类。
它有以下子类。
-
DateLayout
-
HTMLLayout
-
PatternLayout。
-
SimpleLayout
-
XMLLayout
布局类的方法
下表列出了Layout类中的类。
方法 | 描述 |
---|---|
public abstract boolean ignoresThrowable() | 如果忽略Throwable对象。 |
public abstract String format(LoggingEvent event) | 实现此方法以进行格式化布局。 |
public String getContentType() | 返回布局对象使用的内容类型。 |
public String getFooter() | 记录消息的页脚信息。 |
public String getHeader() | 日志消息的头信息。 |
Log4j教程 - Log4j日志到文件
要将信息记录到文件中,请使用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 file log4j.rootLogger = DEBUG, FILE# Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender # file name log4j.appender.FILE.File=${log}/log.out # Set the flush to true log4j.appender.FILE.ImmediateFlush=true# Set the threshold to debug mode log4j.appender.FILE.Threshold=debug# Set the append to true, overwrite log4j.appender.FILE.Append=true# Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
登录多个文件
我们可能希望将消息记录到多个文件中,例如,如果文件大小达到某个阈值,我们希望将消息记录到一个新文件。
要将信息记录到多个文件中,请使用org.apache.log4j.RollingFileAppender类,该类扩展了FileAppender类并继承其所有属性。
下表列出了除FileAppender提到的可配置参数外:
描述 | 描述 |
---|---|
maxFileSize | 将滚动文件的文件的最大大小。 默认值为10MB |
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 # file name log4j.appender.FILE.File=${log}/log.out# Set the maximum file size before rollover log4j.appender.FILE.MaxFileSize=5KB# Set the the backup index log4j.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 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 DatePattern log4j.appender.FILE.DatePattern="." yyyy-MM-dd-a