Java Logger:创建以轮转号+.log为后缀的文件

Cam*_*nes 4 java logging java.util.logging

我正在使用 java.util.logging 包中的 Java Logger。这就是我当前创建记录器的方式:

FileHandler fileHandler = new FileHandler(filePath, 5242880, 5, true);
fileHandler.setFormatter(new java.util.logging.Formatter() {
  @Override
  public String format(LogRecord logRecord) {
    if(logRecord.getLevel() == Level.INFO) {
      return "[INFO  " + createDateTimeLog() + "]  " + logRecord.getMessage() + "\r\n";
    } else if(logRecord.getLevel() == Level.WARNING) {
      return "[WARN  " + createDateTimeLog() + "]  " + logRecord.getMessage() + "\r\n";
    } else if(logRecord.getLevel() == Level.SEVERE) {
      return "[ERROR " + createDateTimeLog() + "]  " + logRecord.getMessage() + "\r\n";
    } else {
      return "[OTHER " + createDateTimeLog() + "]  " + logRecord.getMessage() + "\r\n";
    }
  }
  });
logger.addHandler(fileHandler)
Run Code Online (Sandbox Code Playgroud)

现在,当我的记录器记录时,它会创建一个扩展名为 .0、.1、.2(等)的文件。我更喜欢说 .0.log、.1.log(等等)。我找不到在哪里可以设置这个。任何想法/帮助都会很棒。

cmd*_*cmd 5

当您构造fileHandler对象时,请修改filePath以使用模式。创建一个使用该组件的模式%g。该组件将在运行时替换为生成编号以区分轮换日志。

示例
要使用 form 将日志文件放置在系统临时目录中%TEMP%/mylog.1.log,请使用以下模式:

`"%t/mylog.%g.log"` 
Run Code Online (Sandbox Code Playgroud)