I don't understand the reason why the RollingFileAppender.rollOver() method calls this.setFile() with two different "append" values, ignoring the appender's configured fileAppend property. First case, if last rename did not succeed (with value true): if (!renameSucceeded) { try { this.setFile(fileName, true, bufferedIO, bufferSize); And second case, when all rename-s succeeded (with value false): if (renameSucceeded) { try { // This will also close the file. This is OK since multiple // close operations are safe. this.setFile(fileName, false, bufferedIO, bufferSize); I think at least in positive scenario (at second case) it should use the appender's configured value (, what the constructor received), because after first rolling the logfile looses its configured (or default) true value. Please, correct the code, if You don't have any special reason, because we have annoying sideeffects of that. Thanks