How to rotate log files based on time rather than size in Log4j?

后端 未结 5 1067
别跟我提以往
别跟我提以往 2020-12-14 02:56

I use Log4j with the RollingFileAppender to create a log rotation based on size.

How can I configure it to log to each file for a certain amount of

相关标签:
5条回答
  • 2020-12-14 02:59

    You need to use the DailyRollingFileAppender. Despite its misleading name it can be configured in a to run at configurable time periods up to minutes.

    0 讨论(0)
  • 2020-12-14 03:06

    Use a DailyRollingFileAppender.

    In particular, setting its 'datePattern' property to '.'yyyy-MM-dd-HH would cause file to rotate every hour.

    0 讨论(0)
  • 2020-12-14 03:08

    You probably want to use a DailyRollingFileAppender. To roll them hourly, for example, you'd use a DatePattern of '.'yyyy-MM-dd-HH. For a log4j.properties file:

    log4j.appender.myAppender=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.myAppender.DatePattern='.'yyyy-MM-dd-HH
    ...
    

    Or for your programmatic configuration:

    DailyRollingFileAppender appender = new DailyRollingFileAppender();
    appender.setDatePattern("'.'yyyy-MM-dd-HH");
    
    Logger root = Logger.getRootLogger();
    root.addAppender(appender);
    

    Unfortunately, using a DailyRollingFileAppender means that you can't limit the file size - this could be problematic if you have tons of logs in the given rolled period.

    0 讨论(0)
  • 2020-12-14 03:11

    The other thing to be careful of with any rolling file appender is to make sure only one JVM access a particular log file at a time. This is because log4j caches the log file size for performance reasons, and your 'rolling' will get wonky if multiple JVMs access the same files.

    0 讨论(0)
  • 2020-12-14 03:18

    Additionally,

    log4j.appender.myAppender=org.apache.log4j.DailyRollingFileAppender
    **log4j.appender.myAppender.DatePattern='.'yyyy-MM-dd-HH**
    

    The following list shows all the date patterns which have defined by log4j,

    Minutely  '.'yyyy-MM-dd-HH-mm application.log.2013-02-28-13-54
    Hourly '.'yyyy-MM-dd-HH application.log.2013-02-28-13
    Half-daily '.'yyyy-MM-dd-a application.log.2013-02-28-AM app.log.2013-02-28-PM
    Daily '.'yyyy-MM-dd application.log.2013-02-28
    Weekly '.'yyyy-ww application.log.2013-07 app.log.2013-08 
    Monthly '.'yyyy-MM application.log.2013-01 app.log.2013-02
    
    0 讨论(0)
提交回复
热议问题