Frage

Ich bin nicht in der Lage Java-Protokollierung der Protokollierungsstufe einzustellen. Ich verwende Maven todsichere (MVN-Test), und zu versuchen, von der Standard-INFO einzustellen, um z FINEST.

Ich habe logging.properties Datei unter src / test / resources / logging.properties

nach der Kompilierung, siehe i unter Ziel / Test-Klassen, ich sehe eine logging.properties Datei mit der beabsichtigten config:

java.util.logging.ConsoleHandler.level = FINEST

javax.enterprise.system.container.ejb.level = FINE

...

jedoch die Konsolenausgabe von Glasfischen nur INFO / SCHWERE Level-Nachrichten hat.

Wo habe ich falsch gemacht? oder ist dies ein weiterer Schmerz im Hintern, was mit Maven?

War es hilfreich?

Lösung

Sie benötigen Handler in der Logging-Datei angeben

handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler

dann sollte es funktionieren

Andere Tipps

habe ich versucht, java.util.logging.config.file in der MAVEN_OPTS Umgebungsvariable, die nicht funktioniert, aber schließlich habe es funktioniert durch diese Systemeigenschaft in der pom.xml setzen (und natürlich auch eine entsprechende logging.properties Schaffung in src / test / resources):

    <plugins>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
           <systemProperties>
             <property> 
               <name>java.util.logging.config.file</name>
               <value>src/test/resources/logging.properties</value>
             </property>
           </systemProperties>
        </configuration>
      </plugin>
    </plugins>

Versuch

${build.testOutputDirectory}/logging.properties

Auch ich gebe dieses Zeug auf der Kommandozeile mit Surfire-args.

<argLine>${surefire.argLine} ${argLine} -Djava.util.logging.config.file=${build.testOutputDirectory}/logging.properties</argLine>

Ich war an genau dieser Frage suchen, aber wollte keine Projektkonfiguration (pom.xml) Dateiänderung für jedes Mal, wenn ich bestimmen Protokollierung auf einem Test benötigen.

Die -D Eigenschaft funktioniert von Maven-Befehlszeile.

So können Sie die Protokollierungskonfigurationsdatei von der Befehlszeile aus:

mvn -Djava.util.logging.config.file=`enter filename here` test

Wenn Sie die allgemeine Ebene Nenner .level=FINEST verwenden bewusst sein, dass 3rd-Party-Protokollierung auch auf dieser Ebene erscheint.

zu deaktivieren oder die Maven oder 3rd-Party-Protokollierung zu einer bestimmten Ebene Verwendung expliziten Protokollebene Auswahl für die Klassen in der ausgewählten Protokollkonfigurationsdatei festgelegt.

Ich habe eine Menge von Protokollzeilen von com.google.inject .....

aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Instance member validation: 3ms
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Provider verification: 1ms
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Static member injection: 1ms

Also ich hinzufügen:

com.google.inject.level=INFO

in die Datei. Denken Sie daran, dass die Pegeleinstellung für alle Unterklassen rekursiv ist. So wird com.level=NONE alle Protokollierung deaktivieren für alle Logger der com Domäne.

In Kombination mit der Test Select-Funktion -Dtest=... im todsicheren Plugin beschrieben hier ist sehr gut für Bugs und Fehler zu isolieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top