Java Logger: create file with turn number + .log as suffix

I am using Java Logger in the java.util.logging package. This is how I am creating a registrar now:

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)

Now, when my log is logged, it creates a file with the extension .0, .1, .2 (etc.). I would prefer it to say .0.log, .1.log (etc.). I can’t find where I can install this. Any ideas / help would be great.

+3
source share
2 answers

When you create your object fileHandler, modify filePathto use the template. Create a template that uses the component %g. This component will be replaced at run time with a generation number to distinguish between rotating logs.


temp %TEMP%/mylog.1.log, :

`"%t/mylog.%g.log"` 
+3

FileHandler - , . , FileHandler , . - JVM, , FileHandler .

:

FileHandler fileHandler = new FileHandler("%hjvm%g.log", 5242880, 5, true);

jvm0.log, jvm1.log, jvm2.log ..

+3

All Articles