I encounnted the same issue. Neither RollingFileAppender nor FileAppender works if you call this constructor, which uses append default value(true) to open output stream. I think later setAppend(false) can't be work if it doesn't reopen the stream.
Finally I work it out with the constructor:
fileAppender = new RollingFileAppender(layout, logfile, false);
Good luck!