Как изменить уровень ведения журнала maven для отображения только предупреждений и ошибок? - PullRequest
123 голосов
/ 24 января 2011

Я хочу, чтобы maven не отображал сообщения INFO, я хочу видеть только предупреждения и ошибки (если есть)

Как мне этого добиться, желательно, изменив командную строку, которая вызывает maven?

Ответы [ 8 ]

104 голосов
/ 24 января 2011

При запуске maven с параметром -q или --quiet отображаются только ошибки.Я не знаю настройки, которая также показывает предупреждения, но не имеет информационного уровня.

79 голосов
/ 11 октября 2013

Отвечая на ваш вопрос

Я провел небольшое расследование, потому что меня тоже интересует решение.

Параметры подробности командной строки Maven

Согласно http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option

  • -e для ошибки
  • -X для отладки
  • -q только для ошибки

Файл конфигурации регистрации Maven

В настоящее время maven 3.1.x использует SLF4J для входа в System.out. Вы можете изменить настройки ведения журнала в файле:

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

По данным страницы: http://maven.apache.org/maven-logging.html

Настройка командной строки

Я думаю, что вы должны иметь возможность установить уровень регистрации по умолчанию для простого регистратора с помощью параметра командной строки, например:

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

Но Я не смог заставить его работать . Я предполагаю, что единственная проблема в этом заключается в том, что maven выбирает уровень по умолчанию из файла конфигурации на пути к классам. Я также попробовал несколько других настроек через System.properties, но все они оказались безуспешными.

Приложение

Вы можете найти источник slf4j на github здесь: slf4j github

Источник простого журнала здесь: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / logging / impl / SimpleLog.java

Загрузчик сплетения загружает simplelogger.properties.

41 голосов
/ 10 марта 2013

Linux:

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

или

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

Windows

mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"
26 голосов
/ 16 апреля 2015

Этого можно добиться с помощью MAVEN_OPTS, например
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean

Вместо того, чтобы помещать системное свойство непосредственно в командную строку.(По крайней мере, для maven 3.3.1.)

Попробуйте использовать ~/.mavenrc для установки MAVEN_OPTS, если вы хотите, чтобы регистрация изменялась для вашего логина во всех вызовах maven.

15 голосов
/ 21 ноября 2012

Если вы используете Logback, просто поместите этот logback-test.xml файл в каталог 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>
5 голосов
/ 29 октября 2011

К сожалению, даже с maven 3 единственный способ сделать это - это исправить исходный код.

Вот краткая инструкция, как это сделать.

Клон или форк Maven 3 repo: "git clone https://github.com/apache/maven-3.git"

Отредактируйте ведение журнала org.apache.maven.cli.MavenCli # и измените

cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );

на

cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );

В текущей версии снимка этов строке 270

Затем просто запустите "mvn install", ваш новый дистрибутив maven будет расположен в папке "apache-maven \ target \"

См. этот diff для справки: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131

0 голосов
/ 31 марта 2018

Самый простой способ - перейти на Maven 3.3.1 или выше, чтобы воспользоваться поддержкой ${maven.projectBasedir}/.mvn/jvm.config.

Затем вы можете использовать любые опции из Maven SL4FJ.SimpleLogger поддержка для настройки всех регистраторов или отдельных регистраторов.Например, вот как сделать все предупреждения на уровне warn, за исключением PMD, который настроен на запись в error:

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

См. здесь дляподробнее о входе в систему с Maven.

0 голосов
/ 11 ноября 2017

Я заметил, что при использовании версии 2.20.1 плагина maven sunfire все предупреждения записываются в файл дампа. например /myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...