Mit Blick auf den letzten JUnit-Testfall, den ich geschrieben habe, habe ich log4j's BasicConfigurator.configure() -Methode im Klassenkonstruktor aufgerufen. Das hat gut funktioniert, um nur diese einzelne Klasse aus dem Eclipse-Befehl "Ausführen als JUnit-Testfall" auszuführen. Aber mir ist klar, dass es falsch ist: Ich bin mir ziemlich sicher, dass unsere Testsuite alle diese Klassen in einem Prozess ausführt, und daher sollte die Konfiguration von Log4j irgendwo höher stattfinden.Wo konfiguriere ich log4j in einer JUnit Testklasse?
Aber ich muss noch ein Testfall selbst einige Male ausführen, in diesem Fall möchte ich log4j konfiguriert. Wo sollte ich den Konfigurationsaufruf platzieren, damit er ausgeführt wird, wenn der Testfall eigenständig ausgeführt wird, aber nicht, wenn der Testfall als Teil einer größeren Suite ausgeführt wird?
Wie wird es wissen es ist eine "log4j Konfigurationsdatei?" Wie lautet der Dateiname? (log4j.xml?) – Chad
@Chad: Ich habe meine Antwort bearbeitet, um Ihre Frage zu beantworten. Bitte beachten Sie den Link zum statischen Block, um genau zu sehen, wie dies implementiert wird. –
Ich verwende log4j2 und ich musste die folgende Einstellung verwenden, um eine Datei anzugeben: '-Dlog4j.configurationFile = log4j2.xml'. Wenn Sie versuchen, das Laden/Starten zu debuggen, kann diese Einstellung nützlich sein: '-Dlog4j2.debug = true'. – Kent