Mas não consegui fazê-lo funcionar . Eu acho que o único problema é que o maven pega o nível padrão no arquivo de configuração no caminho de classe. Também tentei algumas outras configurações via System.properties, mas todas elas não tiveram êxito.
Apêndice
Você pode encontrar a fonte do slf4j no github aqui: slf4j github
você conseguiu que a simplelogger.propertiesmudança funcionasse? Quando altero a org.slf4j.simpleLogger.warnLevelStringconfiguração, mvn compileatualizo-a adequadamente, mas parece estar ignorando a org.slf4j.simpleLogger.defaultLogLevelconfiguração. Ele também registra no nível de informações, mesmo quando eu defino isso como aviso ou erro.
Alden
1
@ Olden, estou recebendo o mesmo comportamento. é simplesmente ignorado.
Jax1
18
Para mim, verificou-se que adicionar "-Dorg.slf4j.simpleLogger.defaultLogLevel = info" ao comando build não tem nenhum efeito. Se eu definir isso antes da compilação no MAVEN_OPTS desta forma: exporte "MAVEN_OPTS = $ MAVEN_OPTS -Dorg.slf4j.simpleLogger.defaultLogLevel = debug", funcionará perfeitamente sem alterar o arquivo $ {MAVEN_HOME} /conf/logging/simplelogger.properties .
Gábor Lipták
1
Alden, Gábor Lipták: e para mim nenhum dos dois métodos funciona. :( Estou usando o Maven 3.2.5.
Greg Dubicki 5/15/15
1
Se o Windows, no arquivo bat, o uso conjunto MAVEN_OPTS =% MAVEN_OPTS% -Dorg.slf4j.simpleLogger.defaultLogLevel = avisar
Isso parece funcionar, pois eu poderia desativar o aviso e a mensagem informativa definindo o nível como erro, mas infelizmente também desativou a saída regular. Na verdade, eu estava tentando desativar alguns avisos enquanto executava o help:evaluatealvo para imprimir o valor de project.versione essa saída (embora não pareça ocorrer slf4j) também foi desativada.
haridsv
A única resposta que funciona sem interferir permanentemente na instalação do Maven. Outro motivo pelo qual o Maven é um dinossauro entre o sistema de compilação - ele simplesmente não suporta requisitos de bom senso.
Abhijit Sarkar
16
Se você estiver usando o Logback, basta colocar este logback-test.xmlarquivo no src/test/resourcesdiretório:
Esta resposta está obsoleta a partir de agora - a) URL do repositório alterado, b) não há nenhuma declaração de nível INFO neste código, c) o URL do diff não funciona.
Greg Dubicki
Não importa onde o código usa INFO - ao desenvolver plugins, seu mojo deve confiar no maven logger com getLog()- se você puder viver com a configurabilidade.
Adam
1
A maneira mais simples é atualizar para o Maven 3.3.1 ou superior para aproveitar o ${maven.projectBasedir}/.mvn/jvm.configsuporte.
Em seguida, você pode usar qualquer opção do suporte ao SimpleLogger do SL4FJ do Maven para configurar todos os registradores ou registradores específicos. Por exemplo, aqui está um exemplo de como fazer todos os avisos no warnnível, exceto um PMD que está configurado para registrar em error:
Notei que ao usar a versão 2.20.1 do plug-in maven sunfire , todos os avisos são gravados em um arquivo dumpstream. por exemplo/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
-B, --batch-mode
ou-q
tornarámvn
menos detalhado.Respostas:
Respondendo sua pergunta
Fiz uma pequena investigação porque também estou interessado na solução.
Opções de verbosidade da linha de comando do Maven
De acordo com http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option
Arquivo de configuração de log do Maven
Atualmente o maven 3.1.x usa o SLF4J para fazer logon no System.out. Você pode modificar as configurações de log no arquivo:
De acordo com a página: http://maven.apache.org/maven-logging.html
Configuração da linha de comando
Eu acho que você deve ser capaz de configurar o nível de log padrão do logger simples por meio de um parâmetro de linha de comando, assim:
Mas não consegui fazê-lo funcionar . Eu acho que o único problema é que o maven pega o nível padrão no arquivo de configuração no caminho de classe. Também tentei algumas outras configurações via System.properties, mas todas elas não tiveram êxito.
Apêndice
Você pode encontrar a fonte do slf4j no github aqui: slf4j github
A fonte do simplelogger aqui: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / log / impl / SimpleLog.java
O carregador de plexo carrega o
simplelogger.properties
.fonte
simplelogger.properties
mudança funcionasse? Quando altero aorg.slf4j.simpleLogger.warnLevelString
configuração,mvn compile
atualizo-a adequadamente, mas parece estar ignorando aorg.slf4j.simpleLogger.defaultLogLevel
configuração. Ele também registra no nível de informações, mesmo quando eu defino isso como aviso ou erro.Linux:
ou
Janelas:
fonte
mvn validate clean install | findstr /V /B "\[INFO\]" | findstr /V /B "\[WARN\]"
findstr
suportes regex e outras opções que podem torná-lo mais sucinta - ss64.com/nt/findstr.htmlmvn validate clean install | findstr /V /R "^\[INFO\] ^\[WARN\]"
Você pode conseguir isso com MAVEN_OPTS, por exemplo
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
Em vez de colocar a propriedade do sistema diretamente na linha de comando. (Pelo menos para o maven 3.3.1.)
Considere usar a opção
~/.mavenrc
para definirMAVEN_OPTS
se você deseja alterar o registro para o seu login em todas as chamadas invocadas.fonte
help:evaluate
alvo para imprimir o valor deproject.version
e essa saída (embora não pareça ocorrerslf4j
) também foi desativada.Se você estiver usando o Logback, basta colocar este
logback-test.xml
arquivo nosrc/test/resources
diretório:fonte
você pode conseguir isso usando abaixo na própria linha de comando
por exemplo :
fonte
Infelizmente, mesmo com o maven 3, a única maneira de fazer isso é corrigir o código-fonte.
Aqui está uma breve instrução de como fazer isso.
Clone ou fork do repositório do Maven 3: "git clone https://github.com/apache/maven-3.git "
Edite o registro org.apache.maven.cli.MavenCli # e altere
para
Na versão atual do instantâneo, está na linha 270
Em seguida, basta executar "mvn install", sua nova distribuição maven estará localizada na pasta "apache-maven \ target \"
Veja este diff para a referência: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131
fonte
getLog()
- se você puder viver com a configurabilidade.A maneira mais simples é atualizar para o Maven 3.3.1 ou superior para aproveitar o
${maven.projectBasedir}/.mvn/jvm.config
suporte.Em seguida, você pode usar qualquer opção do suporte ao SimpleLogger do SL4FJ do Maven para configurar todos os registradores ou registradores específicos. Por exemplo, aqui está um exemplo de como fazer todos os avisos no
warn
nível, exceto um PMD que está configurado para registrar emerror
:Veja aqui para mais detalhes sobre o registro no Maven.
fonte
Alterar o
info
queerror
nosimplelogging.properties
arquivo irá ajudar a alcançar sua exigência.Basta alterar o valor da linha abaixo
para
fonte
Notei que ao usar a versão 2.20.1 do plug-in maven sunfire , todos os avisos são gravados em um arquivo dumpstream. por exemplo
/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
fonte
Ir para
simplelogger.properties
em${MAVEN_HOME}/conf/logging/
e defina as seguintes propriedades:E cuidado:,
warn
nãowarning
fonte