日期:2014-05-18  浏览次数:20871 次

关于log4j生成的file日志的问题~~
我这样配置,
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=mylog.txt

log4j.appender.file.MaxFileSize=10KB        
log4j.appender.file.MaxBackupIndex=5  
为什么日志文件达到10kb之后就自动被新的日志文件给替换了?
怎样设置才能达到   保留最后5个日志文件   的效果?

------解决方案--------------------
不是有mylog.txt.1,mylog.txt.2吗。仔细看看
------解决方案--------------------
log4j RollingFileAppender和DailyRollingFileAppender 的时候,
在增加log文件的时候,用的是rename,如果想真的新增,就要改它的原代码...
这个是log4j里面的原代码,
File file = new File(fileName);
boolean result = file.renameTo(target);
我是这么改的.
boolean result = true;
try{
java.io.FileInputStream fosfrom = new java.io.FileInputStream(fileName);
java.io.FileOutputStream fosto = new java.io.FileOutputStream(scheduledFilename);
byte bt[] = new byte[2048];
int c;
while((c = fosfrom.read(bt)) > 0){
fosto.write(bt, 0, c);
}
fosfrom.close();
fosto.close();
}
catch(Exception ex){
result = false;
LogLog.debug(ex.getMessage());
ex.printStackTrace();
}
记得,改完之后要打包.这个比较麻烦,如果没有那个必要,就不需要改了..

一般报的错误是Failed to rename mylog.txt to mylog.txt.1之类的