Log4j: Erstellen / Ändern von Appendern zur Laufzeit, Protokolldatei neu erstellt und nicht angehängt

8

Ich möchte einen Appender für einen bestimmten Methodenaufruf MyMethod () erstellen und aktivieren, dessen Log-Ausgabe in eine Datei gehen soll, die bei "logFilePath" vorhanden ist.

Ich möchte diesen Appender nicht in die XML-Konfigurationsdatei aufnehmen, also dachte ich mir, er sollte zur Laufzeit erstellt werden.

Zuerst habe ich versucht, die Loggereigenschaften zur Laufzeit zu ändern und dann activateOptions aufzurufen, z. Setzen Sie die Stufe vorher auf DEBUG und setzen Sie sie im finally-Block auf Aus, damit die Ausgabe nur protokolliert wird, während die Methode verwendet wird. Das hat nicht funktioniert.

Mein Problem hier ist, dass Appender jedes Mal eine Datei neu erstellt und nicht an dieselbe Datei anfügt. Dies ist trotz setAppend wahr.

Ich bin mit log4j nicht vertraut, also zögern Sie nicht, einen alternativen Ansatz vorzuschlagen. Der folgende Beispielcode soll erklären, was ich versuche.

%Vor%

Ich rufe die obigen Methoden folgendermaßen auf:

%Vor%     
Abhijeet Kashnia 22.05.2012, 09:31
quelle

2 Antworten

7

sehr einfach erstellen Sie einfach eine Methode und fügen Sie diese

hinzu %Vor%

dann in jeder Methode, die Sie loggen müssen, tun Sie das einfach: logger.error ("Ihr Fehler hier");

    
CPU 100 02.08.2012 13:43
quelle
0

Ich mache folgendes von scala (im Grunde das gleiche):

Setzen Sie meine root-Protokollierungsstufe auf TRACE, aber setzen Sie den Grenzwert für meine globalen Appender auf info.

%Vor%

Dann in der Klasse, die ich protokollieren möchte:

%Vor%

Da ich den Schwellenwert meines neuen Appenders auf TRACE oder DEBUG setze, wird er im Grunde genommen anhängen. Wenn ich den Stamm auf eine andere Ebene ändere, wird keine niedrigere Ebene protokolliert.

    
DavidG 23.05.2014 06:59
quelle

Tags und Links