web-dev-qa-db-fra.com

Comment changer le niveau de journalisation maven pour afficher uniquement les avertissements et les erreurs?

Je veux empêcher maven d'afficher des messages INFO, je veux voir uniquement les AVERTISSEMENTS et les ERREURS (le cas échéant). 

Comment puis-je y parvenir, de préférence en changeant la ligne de commande qui appelle maven?

108
sorin

L'exécution de maven avec le paramètre -q ou --quiet n'affiche que les erreurs. Je ne connais pas de paramètre qui affiche également des avertissements, mais pas de niveau d’information.

95
Ruben

Répondre à votre question

J'ai fait une petite enquête parce que je suis aussi intéressé par la solution.

Options de verbosité de la ligne de commande Maven

Selon http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option

  • -e pour erreur
  • -X pour le débogage
  • -q pour seule erreur

Fichier de configuration de journalisation Maven

Actuellement, maven 3.1.x utilise SLF4J pour se connecter à System.out . Vous pouvez modifier les paramètres de journalisation dans le fichier:

${MAVEN_HOME}/conf/logging/simplelogger.properties

D'après la page: http://maven.Apache.org/maven-logging.html

Configuration en ligne de commande

Je pense que vous devriez pouvoir configurer le niveau de journal par défaut du logger simple via un paramètre de ligne de commande, comme ceci:

$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug

Mais je ne pouvais pas le faire fonctionner. Je suppose que le seul problème avec ceci est que maven récupère le niveau par défaut du fichier de configuration sur le classpath. J'ai également essayé quelques autres paramètres via System.properties, mais tous ont échoué.

Appendice

Vous pouvez trouver la source de slf4j sur github ici: slf4j github

La source de simplelogger ici: slf4j/jcl-over-slf4j/src/main/Java/org/Apache/commons/logging/impl/SimpleLog.Java

Le chargeur de plexus charge le simplelogger.properties.

69
kisp

Linux:

mvn validate clean install | egrep -v "(^\[INFO\])"

ou

mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"

Les fenêtres:

mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"
39
Tom H

Vous pouvez y parvenir avec MAVEN_OPTS, par exemple
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean

Plutôt que de mettre la propriété système directement sur la ligne de commande. (Au moins pour maven 3.3.1.)

Pensez à utiliser ~/.mavenrc pour définir MAVEN_OPTS si vous souhaitez que la connexion soit modifiée pour votre connexion dans tous les appels Maven.

25
binkley

Si vous utilisez Logback, placez simplement ce fichier logback-test.xml dans le répertoire src/test/resources:

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>
<root level="INFO">
    <appender-ref ref="STDOUT" />
</root>
</configuration>
13
Pawel Wrzeszcz

Malheureusement, même avec maven 3, le seul moyen de le faire est de patcher le code source.

Voici de brèves instructions pour faire cela.

Clone ou fork Maven 3 repo: "git clone https://github.com/Apache/maven-3.git "

Modifiez la journalisation org.Apache.maven.cli.MavenCli # et modifiez-la.

cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );

à

cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );

Dans la version actuelle de l'instantané, il est à la ligne 270

Ensuite, lancez simplement "mvn install", votre nouvelle distribution maven sera située dans le dossier "Apache-maven\target \"

Voir ce diff pour la référence: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131

5
Dmitry Sidorenko

J'ai remarqué qu'en utilisant la version 2.20.1 de le plugin maven sunfire , tous les avertissements sont écrits dans un fichier dumpstream. par exemple. /myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream

0
Hakan

La méthode la plus simple consiste à effectuer une mise à niveau vers Maven 3.3.1 ou une version plus récente pour tirer parti du support de ${maven.projectBasedir}/.mvn/jvm.config.

Ensuite, vous pouvez utiliser n’importe quelle option du support SimpleLogger support de Maven SL4FJ pour configurer tous les enregistreurs ou certains enregistreurs. Par exemple, voici comment créer tous les avertissements au niveau warn, à l'exception du PMD configuré pour se connecter à error:

cat .mvn/jvm.config
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error

Voir ici pour plus de détails sur la journalisation avec Maven.

0
btiernay