Java Log4j RollingFileAppender未在Apache tomcat(windows)中滚动

Java Log4j RollingFileAppender未在Apache tomcat(windows)中滚动,java,tomcat,log4j,logback,rollingfileappender,Java,Tomcat,Log4j,Logback,Rollingfileappender,我在ApacheTomcat中滚动日志时遇到问题。 [在我的war网络应用程序中] 这是我的日志处理程序配置: private static final String logLayoutStr = "[%-20t][%d{dd MMM yyyy HH:mm:ss,SSS}] [%-40.40c{2}]: [%-5p] %m%n"; public static String LOG_FILE_PATH = "log file path"; private static fin

我在ApacheTomcat中滚动日志时遇到问题。 [在我的war网络应用程序中] 这是我的日志处理程序配置:

    private static final String logLayoutStr = "[%-20t][%d{dd MMM yyyy HH:mm:ss,SSS}] [%-40.40c{2}]: [%-5p] %m%n";

   public static String LOG_FILE_PATH = "log file path";
   private static final Integer MAX_BACKUP_INDEX = 200;
   private static final String MAX_FILE_SIZE = "50MB";

   public LogHandler() {
       Logger.getRootLogger().setLevel(Level.WARN);

      try {
          addAppenderToLogger(mainLogger, logLayoutStr, LOG_FILE_PATH);
      } catch (Exception e) {
      }
  }

   private void addAppenderToLogger (Logger l, String layout, String path)    throws IOException {
      RollingFileAppender rollingFileAppender = new RollingFileAppender(new    EnhancedPatternLayout(layout), path, true);
      rollingFileAppender.setMaxBackupIndex(MAX_BACKUP_INDEX);
      rollingFileAppender.setMaxFileSize(MAX_FILE_SIZE);

      //we wrap each rolling appender with an async appender
      AsyncAppender asyncAppender = new AsyncAppender();
      asyncAppender.addAppender(rollingFileAppender);
      l.addAppender(asyncAppender);
      l.setLevel(Level.DEBUG);
  }
我想提到的是,在ApacheTomcat中的linux服务器上,没有滚动的问题。 在Windows服务器中,文件只会增加而不会滚动

我可以举一个简单的用法示例:

我有一个日志文件,超过50MB->应该转换为log.1,并且应该打开一个新的日志文件进行写入

当我停止tomcat服务,并在文件太大后将日志扩展名更改为log.1时,在再次启动tomcat服务后会打开一个新的日志文件

当新文件达到最大50 MB时,log.1文件将重命名为log.2,但日志文件仍在增加,不会更改为log.1并创建新的日志文件


您能提供建议吗?

之前,Log4J、滚动附件和Windows出现了一些问题。您使用哪个版本?Log4j不再处于活动开发中。尝试使用Logback:我使用的是1.2.17版本