Log4J - 在文件中记录日志

2024 年 8 月 29 日 | 阅读 3 分钟

Log4j 提供了 org.apache.log4j.FileAppender 类,用于将您的日志信息写入文件。

FileAppender 参数

FileAppender 具有以下可配置参数

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

让我们看一个 FileAppender 的例子

Log4j.properties

Example.java

输出

Hello this is a debug message
Hello this is an info message

如果您希望拥有一个与上述 log4j.properties 文件等效的 XML 配置文件,则以下是内容

在多个文件中记录日志

由于某些原因,我们还可以将多个消息写入多个文件,例如,如果文件大小达到某个阈值。

要将有关日志记录的信息写入多个文件,您必须使用 org.apache.log4j.RollingFileAppender 类,该类扩展了 FileAppender 类并继承了其所有属性。

除了上面针对 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,以生成每天中午和午夜滚动的日志文件


下一个主题Log4j PatternLayout