Finden Sie den log4j2 (beta9) Protokolldateinamen programmatisch

8

Ich benutze Java 1.7 und Log4j2 (beta9) und ich habe die folgende log4j2.xml Datei:

%Vor%

Und soweit das Logging selbst läuft, macht es das, was ich brauche.

Als Teil der Fehler / Ausnahme-Sequenz muss ich eine E-Mail mit der Protokolldatei als Anhang senden.

Wie bekomme ich programmatisch das 'fileName="logs / foo.log"' Bit? Ich würde es wirklich hassen, das hart programmieren zu müssen.

    
Dennis 07.02.2014, 17:12
quelle

3 Antworten

5

Von der Logger , iteriere durch alle getAllAppenders und suche nach derjenigen, die RollingFileAppender implementiert, und rufe getFile darauf auf. Oder Sie könnten stattdessen getAppender("RollingFile") verwenden, wenn es Ihnen nichts ausmacht, den Namen des Appenders zu programmieren.

Für Log4j 1:

%Vor%

Für Log4j 2: (Bitte beachten Sie, dass dies den Logger ohne Schnittstelle erfordert)

%Vor%     
Paul Hicks 07.02.2014, 17:17
quelle
3

Pauls Antwort war richtig mit einer kleinen Änderung:

%Vor%

Alles Lob für die Antwort geht an Paul!

    
Dennis 07.02.2014 20:18
quelle
0

Alternative Methode mit weniger Classcasting:

%Vor%     
Dimitar II 18.12.2017 19:25
quelle

Tags und Links