überschreiben log4j-Konfiguration programmatisch: Speicherort für FileAppender

8

ist es möglich, die Eigenschaft "Datei" eines Appenders, der in log4j.properties konfiguriert wurde, außer Kraft zu setzen, ohne einen neuen Appender zu erstellen? Und wenn ja - wie?

Das ist die Situation: Ich habe zwei Apenders, A1 ist ein ConsoleAppender und A2 ist ein FileAppender. A2 "Datei" verweist auf ein generisches error.log:

log4j.appender.A2.File=error.csv

Dieser Appender protokolliert nur Ereignisse auf Fehlerebene oder schlechter durch

log4j.appender.A2.Threshold=error .

Nun möchte ich, dass diese Fehler in verschiedenen Dateien geschrieben werden, abhängig davon, welche Klasse den Fehler verursacht hat, da es mehrere Klassen gibt, von denen Instanzen erstellt werden. Die Möglichkeit zu sehen, welche Klasse die Fehler schnell erstellt hat, wäre eine große Hilfe, da es viel hilfreicher ist, die error.log nach den Klassen-Tags zu durchsuchen.

Meine Idee war also, die Eigenschaft "Datei" zu überschreiben, z. in den Konstruktoren dieser neu erstellten Klassen, so dass sie Fehler in verschiedenen Dateien protokollieren.

Vielen Dank im Voraus!

    
m00hk00h 09.01.2013, 17:05
quelle

2 Antworten

12

Um log4j-Eigenschaften zur Laufzeit zu ändern, besuchen Sie diesen Link

Ссылка

%Vor%     
muffy 09.01.2013, 17:16
quelle
9

Alte Frage (in Google gut indiziert). Zusätzlich zu der Anforderung von OP wurde das Hinzufügen zusätzlicher Methoden zur Manipulation von log4j.properties

beschrieben

Modifizierte geladene log4j.properties in Runtime

%Vor%

Einstellung von log4j.properties in Laufzeit

Kann manuell durchgeführt werden

%Vor%

Oder durch Laden einer anderen Eigenschaftendatei

%Vor%

VM-Option

Sie können log4j anweisen, eine andere Datei mit log4j.configuration VM Option

zu laden %Vor%
  • Wenn Sie diese Option wählen, muss sie in der Ausführungszeile
  • angegeben werden
Jossef Harush 31.12.2015 08:53
quelle

Tags und Links