我相信我只是错误地配置了它;有没有人有配置 RollingFileAppender 的工作示例?
这对我来说似乎很好@mcherm。见下文。
您确定您使用的是您认为的 log4j.properties 吗?尝试将 更改.File
为另一个路径以查看日志输出是否进入新文件。你用的是什么版本的 log4j?我正在运行 1.2.15。
希望这可以帮助。
我创建了以下测试程序:
package com.j256.ormlite;
import org.apache.log4j.Logger;
public class Foo {
private static Logger logger = Logger.getLogger(Foo.class);
public static void main(String[] args) {
for (int x = 0; x < 10000000; x++) {
logger.error("goodness this shouldn't be happening to us right here!!!!");
}
}
}
我的 log4j.properties 文件包含:
log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender
log4j.appender.MAIN_LOG.File=${catalina.base}/logs/webtop.log
log4j.appender.MAIN_LOG.layout=com.j256.ormlite.Log4JSimpleLayout
log4j.appender.MAIN_LOG.MaxFileSize=10MB
log4j.appender.MAIN_LOG.MaxBackupIndex=5
log4j.appender.MAIN_LOG.append=true
log4j.rootCategory=ALL, MAIN_LOG
请注意,我删除了对 RollingFileAppender 无效的 DatePattern。我的布局是:
package com.j256.ormlite;
import org.apache.log4j.spi.LoggingEvent;
public class Log4JSimpleLayout extends org.apache.log4j.Layout {
@Override
public String format(LoggingEvent event) {
return "log message = " + event.getMessage().toString() + "\n";
}
@Override
public boolean ignoresThrowable() {
return true;
}
public void activateOptions() {
}
}
运行时,-Dcatalina.base=/tmp/
我得到的文件/tmp/logs/
最多可达索引 #5,大小为 10mb。如果我调整MaxFileSize
或MaxBackupIndex
,它会适当调整。