Java Log4j RollingFileAppender未在Apache tomcat(windows)中滚动
我在ApacheTomcat中滚动日志时遇到问题。 [在我的war网络应用程序中] 这是我的日志处理程序配置: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
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版本