Log4j RollingFileAppender没有在Apache tomcat中滚动(windows)

时间:2015-05-05 09:50:50

标签: java tomcat log4j logback rollingfileappender

我在apache tomcat中滚动日志时遇到问题。 [在我的战争webapp] 这是我的日志处理程序配置:

    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);
  }

我想提一下,在Apache tomcat的linux服务器上没有滚动问题。 在Windows服务器中,文件只是在没有任何滚动的情况下增加。

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

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

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

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

你能告诉我吗?

0 个答案:

没有答案