-
- Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Description
In 85bed93 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.