Domanda

Sono in grado di regolare il livello di registrazione di registrazione Java. Sto usando Maven infallibile (mvn test), e cercando di registrare dal default INFO per esempio FINEST.

Ho lima logging.properties in src / test / risorse / logging.properties

Dopo la compilazione, vedo sotto di destinazione / test-classi, vedo un file logging.properties con la configurazione prevista:

java.util.logging.ConsoleHandler.level = FINEST

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

...

tuttavia l'uscita della console da pesci vetro hanno solo INFO messaggi di livello / grave.

Dove ho sbagliato? o si tratta di un dolore nella cosa culo con Maven?

È stato utile?

Soluzione

È necessario specificare i gestori nel file di registrazione

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

allora dovrebbe lavorare

Altri suggerimenti

Ho provato a fissare java.util.logging.config.file nella variabile di ambiente MAVEN_OPTS, che non funziona ma finalmente ottenuto lavorando mettendo che proprietà di sistema nel pom.xml (e di creare naturalmente un opportuno logging.properties in src / test / risorse):

    <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>

try

${build.testOutputDirectory}/logging.properties

Inoltre, ho specificare questa roba sulla riga di comando con SURFIRE-args.

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

I stava guardando questo problema esatto, ma non voleva che una modifica di file di configurazione di progetto (pom.xml) per ogni volta che ho bisogno di registrazione specifica su una prova.

La proprietà -D funziona da linea di comando Maven.

In questo modo è possibile selezionare il file di configurazione di registrazione dalla riga di comando:

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

Se si utilizza il generico livello denominatore .level=FINEST essere consapevoli del fatto che la registrazione 3a parte apparirà anche a quel livello.

Per disabilitare o impostare l'esperto o registrazione 3a parte ad una selezione livello di registro esplicito uso specifico livello per le classi nel file di configurazione di registro selezionato.

Ho un sacco di linee di log da 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

Quindi aggiungo:

com.google.inject.level=INFO

per il file. Ricordate che l'impostazione del livello è ricorsivo per tutte le sottoclassi. Così com.level=NONE disattiverà tutta la registrazione per tutti i logger dal dominio com.

La combinazione di questo con il test di selezione funzione -Dtest=... nel infallibile plug descritto qui è molto buono per isolare bug ed errori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top