2011-01-12 8 views
20

Was ist der beste Weg, um log4j für den Einsatz in einer Testumgebung zu konfigurieren? Da meine Komponententests keine externen Abhängigkeiten haben, ist das Lesen der log4j-Konfigurationsdatei keine Option. Idealerweise würde es 1 oder 2 Funktionsaufrufe geben, die ich innerhalb der Einheitstest-Setup-Funktion ausführen könnte.Wie konfiguriere ich log4j in einer Unit-Test-Umgebung?

+0

Haben Sie daran gedacht, SLF4J verwenden, die für Ihre usecase besser sein kann, denke ich. – OpenSource

+0

Externe Log4J-Konfiguration ist nicht schlecht, da ein Entwickler es ändern kann, wenn sie Bugs jagt. – xmedeko

Antwort

15

könnten Sie einen statischen Code-Block an der Spitze der Probe gestellt, die

tut
BasicConfigurator.configure(); 

Beachten Sie, dass das Problem dabei ist, dass jedes Mal, wenn Zeile ausgeführt wird, log4j einen appender hinzufügen und Sie erhalten doppelte Protokollanweisungen Wenn Sie das in jeder Testklasse tun, erhalten Sie n Duplikate jeder Log-Anweisung.

Also ich empfehle, eine Klasse zu erstellen, die Ihr BaseTestCase ist und das dort tun.

Hinweis, mit der entsprechenden Konfiguration eine Art von Test-Ressourcen aufweist, ist keine schlechte Idee ...

+0

Danke. Der doppelte Appender war mein Problem mit diesem Ansatz. –

+12

Eine einfachere Möglichkeit, "nicht mit n Duplikaten jeder Log-Anweisung zu enden", ist der obigen Code-Zeile vorauszugehen mit: BasicConfigurator.resetConfiguration(); – urig

+2

@urig: du hast meinen Tag gemacht – boutta

Verwandte Themen