Но я не мог заставить его работать . Я предполагаю, что единственная проблема в том, что maven выбирает уровень по умолчанию из файла конфигурации в пути к классам. Я также попробовал несколько других настроек через System.properties, но все они не увенчались успехом.
Приложение
Вы можете найти исходный код slf4j на github здесь: slf4j github
вы получили simplelogger.propertiesсдачу? Когда я изменяю org.slf4j.simpleLogger.warnLevelStringнастройку, mvn compileобновляется соответствующим образом, но, похоже, она игнорирует org.slf4j.simpleLogger.defaultLogLevelнастройку. Он также регистрирует информацию на уровне информации, даже если я установил предупреждение или ошибку.
Alden
1
@Alden, у меня такое же поведение. его просто игнорируют.
jax 01
18
Для меня оказалось, что добавление "-Dorg.slf4j.simpleLogger.defaultLogLevel = info" в команду сборки не имеет никакого эффекта. Если я определю это перед сборкой в MAVEN_OPTS следующим образом: export "MAVEN_OPTS = $ MAVEN_OPTS -Dorg.slf4j.simpleLogger.defaultLogLevel = debug", тогда он будет отлично работать без изменения файла $ {MAVEN_HOME} /conf/logging/simplelogger.properties .
Gábor Lipták
1
Олден, Габор Липтак: и для меня ни один из двух методов не работает. :( Я использую Maven 3.2.5.
Грег Дубицки 05
1
если окна, в файле bat, используйте set MAVEN_OPTS =% MAVEN_OPTS% -Dorg.slf4j.simpleLogger.defaultLogLevel = warn
Кажется, это работает, так как я мог отключить предупреждение и информационное сообщение, установив уровень на ошибку, но, к сожалению, он также отключил обычный вывод. На самом деле я пытался отключить некоторые предупреждения во время запуска help:evaluatetarget для вывода значения, project.versionи этот вывод (хотя, похоже, не проходит slf4j) также был отключен.
haridsv
Единственный ответ, который работает без постоянного вмешательства в установку Maven. Еще одна причина, по которой Maven - динозавр среди систем сборки - он просто не поддерживает требования здравого смысла.
Абхиджит Саркар
18
Если вы используете Logback, просто поместите этот logback-test.xmlфайл в src/test/resourcesкаталог:
На данный момент этот ответ УСТАРЕЛ - а) URL-адрес репо изменился, б) в этом коде нет инструкции уровня INFO, в) URL-адрес diff не работает.
Грег Дубицки
Не имеет значения, где в коде используется информация - при разработке плагинов ваше моджо должно полагаться на регистратор maven с getLog()- если вы можете жить с возможностью настройки.
Adam
1
Самый простой способ - перейти на Maven 3.3.1 или выше, чтобы воспользоваться ${maven.projectBasedir}/.mvn/jvm.configподдержкой.
Затем вы можете использовать любые параметры из поддержки SimpleLogger SL4FJ от Maven для настройки всех регистраторов или конкретных регистраторов. Например, вот как сделать все предупреждения на warnуровне, за исключением PMD, который настроен для входа в error:
Я заметил, что при использовании версии 2.20.1 плагина maven sunfire все предупреждения записываются в файл дампа. например/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
-B, --batch-mode
или-q
сделаюmvn
менее подробным.Ответы:
Отвечая на ваш вопрос
Я провел небольшое расследование, потому что меня тоже интересует решение.
Параметры подробности командной строки Maven
Согласно http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option
Файл конфигурации журнала Maven
В настоящее время maven 3.1.x использует SLF4J для входа в System.out. Вы можете изменить настройки ведения журнала в файле:
Согласно странице: http://maven.apache.org/maven-logging.html
Настройка командной строки
Я думаю, вы сможете установить уровень журнала по умолчанию для простого регистратора с помощью параметра командной строки, например:
Но я не мог заставить его работать . Я предполагаю, что единственная проблема в том, что maven выбирает уровень по умолчанию из файла конфигурации в пути к классам. Я также попробовал несколько других настроек через System.properties, но все они не увенчались успехом.
Приложение
Вы можете найти исходный код slf4j на github здесь: slf4j github
Источник simplelogger здесь: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / logging / impl / SimpleLog.java
Загрузчик plexus загружает файлы
simplelogger.properties
.источник
simplelogger.properties
сдачу? Когда я изменяюorg.slf4j.simpleLogger.warnLevelString
настройку,mvn compile
обновляется соответствующим образом, но, похоже, она игнорируетorg.slf4j.simpleLogger.defaultLogLevel
настройку. Он также регистрирует информацию на уровне информации, даже если я установил предупреждение или ошибку.Linux:
или
Windows:
источник
mvn validate clean install | findstr /V /B "\[INFO\]" | findstr /V /B "\[WARN\]"
findstr
поддерживает регулярное выражение и другие параметры, которые могут сделать его более лаконичным - ss64.com/nt/findstr.htmlmvn validate clean install | findstr /V /R "^\[INFO\] ^\[WARN\]"
Вы можете добиться этого с помощью MAVEN_OPTS, например
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
Вместо того, чтобы помещать системное свойство непосредственно в командную строку. (По крайней мере, для maven 3.3.1.)
Подумайте об использовании
~/.mavenrc
для настройки,MAVEN_OPTS
если вы хотите, чтобы журнал для вашего входа был изменен для всех вызовов maven.источник
help:evaluate
target для вывода значения,project.version
и этот вывод (хотя, похоже, не проходитslf4j
) также был отключен.Если вы используете 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>
источник
вы можете добиться этого, используя ниже в самой командной строке
например:
источник
К сожалению, даже с maven 3 единственный способ сделать это - исправить исходный код.
Вот краткая инструкция, как это сделать.
Клонирование или форк репозитория Maven 3: "git clone https://github.com/apache/maven-3.git "
Отредактируйте журнал org.apache.maven.cli.MavenCli # и измените
к
В текущей версии снимка это строка 270.
Затем просто запустите «mvn install», ваш новый дистрибутив maven будет расположен в папке «apache-maven \ target \»
См. Эту разницу для справки: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131
источник
getLog()
- если вы можете жить с возможностью настройки.Самый простой способ - перейти на Maven 3.3.1 или выше, чтобы воспользоваться
${maven.projectBasedir}/.mvn/jvm.config
поддержкой.Затем вы можете использовать любые параметры из поддержки SimpleLogger SL4FJ от Maven для настройки всех регистраторов или конкретных регистраторов. Например, вот как сделать все предупреждения на
warn
уровне, за исключением PMD, который настроен для входа вerror
:Смотрите здесь для более подробной информации о регистрации с Maven.
источник
Изменение
info
кerror
вsimplelogging.properties
файле поможет в достижении ваших требований.Просто измените значение в строке ниже
к
источник
Зайдите
simplelogger.properties
в${MAVEN_HOME}/conf/logging/
и установите следующие свойства:И будьте осторожны:
warn
неwarning
источник
Я заметил, что при использовании версии 2.20.1 плагина maven sunfire все предупреждения записываются в файл дампа. например
/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
источник