Tomcat log4j没有活动时不旋转日志

Tomcat log4j没有活动时不旋转日志,tomcat,log4j,Tomcat,Log4j,当没有活动时,log4j不旋转日志(tomcat服务器日志catalina.log和localhost.log)。这是我的log4j属性。但是,如果日志具有活动性,则日志是旋转的。如有任何帮助,请指教 Log4j版本:-Log4j-1.2.17.jar 这在dailrollingfileappender中是可以预期的,因为在实际记录某些内容时,滚动作为subAppend()方法的一部分发生。此方法的Javadoc声明: 在实际记录日志之前,此方法将检查是否需要 做一个翻转。如果是,它将安排下一次

当没有活动时,log4j不旋转日志(tomcat服务器日志catalina.log和localhost.log)。这是我的log4j属性。但是,如果日志具有活动性,则日志是旋转的。如有任何帮助,请指教

Log4j版本:-Log4j-1.2.17.jar


这在
dailrollingfileappender
中是可以预期的,因为在实际记录某些内容时,滚动作为subAppend()方法的一部分发生。此方法的Javadoc声明:

在实际记录日志之前,此方法将检查是否需要 做一个翻转。如果是,它将安排下一次滚动时间和 然后翻滚

如果您要求文件在午夜轮换-最简单的方法是将日志消息安排在00:00:00。这将触发日志文件滚动。如果您正在使用JEE,您可以执行以下操作:

import javax.ejb.Schedule;
import javax.ejb.Singleton;

@Singleton
public class RollLogs {
        static Logger logger = Logger.getLogger(RollLogs.class);
    @Schedule(second="0", minute="0", hour="0", dayOfWeek="*", persistent=false)
    public void rollLogs() {
        logger.info("midnight");
    }
}
import javax.ejb.Schedule;
import javax.ejb.Singleton;

@Singleton
public class RollLogs {
        static Logger logger = Logger.getLogger(RollLogs.class);
    @Schedule(second="0", minute="0", hour="0", dayOfWeek="*", persistent=false)
    public void rollLogs() {
        logger.info("midnight");
    }
}