Die Funktionalität, die ich brauche, ist Schreiben einer Kopfzeile am Anfang der konfigurierten Protokolldatei. Die Protokolldatei sollte zusätzlich basierend auf einem Zeitmuster (ich spreche Logback 1.0.7) umgerollt werden.
Ich denke also an einen Appender - obwohl ich mir nicht sicher bin, ob es ein benutzerdefiniertes Layout ist, das ich wirklich brauche.
1) Appender
In der Dokumentation zu logback ist der richtige Ansatz, AppenderSkeleton
zu erweitern, aber wie würde ich das dann mit RollingFileAppender
kombinieren (um den Datei-Rollover zu erstellen?)
Andererseits, wenn ich RollingFileAppender
erweitere, welche Methode überschreibe ich, um nur die vorhandene Funktionalität zu dekorieren? Wie sage ich, dass diese bestimmte Zeichenfolge nur am Anfang der Datei geschrieben wird?
2) Layout
Analog dazu scheint der Ansatz LayoutBase
zu erweitern und eine Implementierung für doLayout(ILoggingEvent event)
bereitzustellen.
Aber noch einmal, ich weiß nicht, wie ich das Verhalten einfach dekorieren soll - ich füge nur eine neue Zeile in die Datei ein, anstatt ihre Funktionalität zu stören (weil ich immer noch möchte, dass der Rest der Logs korrekt angezeigt wird).
Das getFileHeader()
in LayoutBase
sieht vielversprechend aus, aber wie benutze ich es? Soll es sogar von benutzerdefinierten Layouts überschrieben werden? (wahrscheinlich ja, da es Teil der Layout-Oberfläche ist, aber dann wie?)
Danke!
Hier beantworte ich meine eigene Frage, nur für den Fall, dass jemand anderes auf dasselbe Problem stößt. So habe ich es schließlich getan (weiß nicht, ob es der orthodoxe Weg ist):
Anstatt AppenderSkeleton zu erweitern, habe ich RollingFileAppender erweitert (um die Rollover-Funktionalität beizubehalten) und die openFile () -Methode überschrieben. Hier könnte ich die Log-Datei manipulieren und den Header darin schreiben, nachdem ich alles getan habe, was es standardmäßig tun musste. So:
%Vor% Ich habe den Header in logback.xml so einfach konfiguriert: <header> value </header>
. Dies spritzt es in das Header-Feld meines neuen Appenders.
Scheint ohne Probleme zu funktionieren, aber bitte poste, wenn du einen besseren Weg kennst!
Tags und Links layout logback appender rollingfileappender