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

后端 未结 5 1099
别跟我提以往
别跟我提以往 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 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.

提交回复
热议问题