logback
logback copied to clipboard
Header not written for RollingFileAppender since version 1.5.7
In 85bed93af the encoderInit()-method was moved from setOutputStream() to start(). The RollingFileAppender will not call start() once a new file is rolled. Therefore these new files won't get a header anymore.
We are using logback to create a binary file which requires a header. Due to this change, only the first file gets the header (because start() calls encoderInit()). But every other file created by RollingFileAppender is without the header.
As a hotfix it works to override the setOutputStream-method with:
public void setOutputStream(final OutputStream outputStream) {
super.setOutputStream(outputStream);
if (isStarted()) {
try {
getOutputStream().write(getEncoder().headerBytes());
} catch (final IOException e) {
addWarn("Konnte etem-Header nicht schreiben. " + e.getMessage());
}
}
}
The isStarted()-check is needed to avoid, that the header is written twice in the beginning.