log4j extras throw log4j:WARN关闭后翻转操作失败 - 使用SizeBasedTriggeringPolicy

时间:2016-04-09 02:43:06

标签: java logging log4j

我正在使用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相关的错误?

0 个答案:

没有答案