在此示例中,我们创建滚动文件或日志文件序列。我们不仅可以限制文件大小(请参阅如何限制日志文件的大小),还可以使日志文件滚动。如果我们使用单个日志文件,这将防止丢失重要的日志消息。
当使用多个文件时,日志文件名中将包含一个从0到的序列号N-1。如果将计数设置为5,则将有日志文件,例如myapp.log.0,myapp.log.1最大为myapp.log.5。
如果第一个日志文件(myapp.log.0)即将满,则myapp.log.1在将日志写入第一个日志文件之前,它将重命名为()。日志始终写入第一个文件(myapp.log.0)。
要按顺序读取日志消息,您需要从最高到最低的序列号开始。
package org.nhooo.example.logging; import java.util.logging.Logger; import java.util.logging.FileHandler; import java.util.logging.SimpleFormatter; import java.io.IOException; public class RollingLogFile { // 设置较小的日志文件大小以演示滚动日志文件。 public static final int FILE_SIZE = 1024; public static void main(String[] args) { Logger logger = Logger.getLogger(RollingLogFile.class.getName()); try { // 创建具有5个日志文件的FileHandler实例 // 序列。 FileHandler handler = new FileHandler("myapp.log", FILE_SIZE, 5, true); handler.setFormatter(new SimpleFormatter()); logger.addHandler(handler); logger.setUseParentHandlers(false); } catch (IOException e) { logger.warning("Failed to initialize logger handler."); } logger.info("Logging information message."); logger.warning("Logging warning message."); } }
通过多次运行该程序,您将看到一个一个地创建日志文件。