我正在使用log4j附加功能来进行基于大小的日志滚动。这是一个linux enivronment,文件夹和日志文件具有所有的写入和读取权限。 但我仍然无法根本导致问题失败。
log4j.appender.LOGFILE=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.LOGFILE.File=${catalina.base}/logs/mylog.log
log4j.appender.LOGFILE.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=[%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} %t %-20X{xyz} %-36X{xvg} %-5p %c] %m%n
log4j.appender.LOGFILE.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
log4j.appender.LOGFILE.RollingPolicy.maxIndex=10
log4j.appender.LOGFILE.RollingPolicy.minIndex=1
log4j.appender.LOGFILE.RollingPolicy.FileNamePattern==${catalina.base}/logs/mylog.log.%i.zip
log4j.appender.LOGFILE.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.LOGFILE.TriggeringPolicy.MaxFileSize=10000
在挖掘log4j额外代码之后,看起来它在翻转期间重命名文件时失败了。显然以下方法返回false。
/**
* Rename file.
* @param source current file name.
* @param destination new file name.
* @param renameEmptyFiles if true, rename file even if empty, otherwise delete empty files.
* @return true if successfully renamed.
*/
public static boolean execute(
final File source, final File destination, boolean renameEmptyFiles) {
if (renameEmptyFiles || (source.length() > 0)) {
return source.renameTo(destination);
}
return source.delete();
}
参考:source file: FileRenameAction
请帮我解决这个问题。 如何从File的renameTo方法中找到与返回的false相关的错误?