Closed mestihudson closed 10 years ago
Edita o arquivo do log4j (src/test/resources/log4j.xml)
Adicione as linhas
Deixa somente o appender pra salvar no arquivo e não no console.
Acho q é isso. To fazendo de cabeça e não testei. Veja se da certo. Confere aí o nome do appender
@marvinsiq, devo estar fazendo algo muito errado, pois:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="LOG-FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${java.io.tmpdir}/demoiselle-behave.log" />
<param name="Append" value="true" />
<param name="Threshold" value="INFO" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p (%t) [%c{1}]: %m%n" />
</layout>
</appender>
<appender name="LOG-CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p (%t) [%c{1}]: %m%n" />
</layout>
</appender>
<category name="br.gov.frameworkdemoiselle.behave">
<priority value="info" />
<appender-ref ref="LOG-FILE" />
<appender-ref ref="LOG-CONSOLE" />
</category>
<category name="org.reflections.Reflections">
<priority value="info" />
<appender-ref ref="LOG-FILE" />
</category>
</log4j:configuration>
E continua não funcionando...
@mestihudson, deixa eu entender sua questão. Você quer desabilitar o modo INFO, mas quer que as mensagens de outros níveis como DEBUG funcionem?
Em todo basta desabilitar no seu log4j a categoria do behave:
<!--
<category name="br.gov.frameworkdemoiselle.behave">
<priority value="info" />
<appender-ref ref="LOG-FILE" />
<appender-ref ref="LOG-CONSOLE" />
</category>
-->
Acho que o que ele quer é desabilitar o modo INFO somente do pacote org.reflections Tira o nome da classe aí (Reflections) e testa de novo. A ideia é redirecionar os logs de classes desse pacote para o appender que não seja o do console. Esse formato xml do log4j é bem confuso, eu prefiro o .properties e mesmo assim eu me perco um pouco com essas configurações. Confesso que vou mesmo na tentativa e erro.
@marvinsiq ainda...nada, e, a propósito, @botelhojp, o que eu quero é exatamente o exposto pelo @marvinsiq.
@mestihudson, não conseguimos reproduzir o problema, pois o projeto reflections-0.9.9-RC1 não possui dependência ao log4j. Vide hierarquia de dependências:
Peço, por gentileza, informar qual a versão do DBehave e do Reflections que encontra-se no seu classpath.
Segue:
@mestihudson, como a versão 1.3.1 também depende do reflections-0.9.9-RC1 que não depende do log4j, não é o DBehave a causa do problema.
Notei que há outras dependências no seu projeto, neste caso recomendo que avalie sua estrutura para descobrir a causa dos logs indesejáveis.
Não entendi @botelhojp, quer dizer que, possivelmente, outras dependências do meu projeto, que por sinal, aparentemente, não fazem uso do log4j, como pode ser observado na saída gerada pelo comando mvn dependency:tree
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ dominios-test ---
[INFO] br.gov.serpro.dominios:dominios-test:jar:0.0.1-SNAPSHOT
[INFO] +- br.gov.frameworkdemoiselle.component.behave:demoiselle-behave-parser-jbehave:jar:1.3.1:test
[INFO] | +- br.gov.frameworkdemoiselle.component.behave:demoiselle-behave-core:jar:1.3.1:test
[INFO] | \- org.jbehave:jbehave-core:jar:3.8:test
[INFO] | +- junit:junit-dep:jar:4.8.2:test
[INFO] | +- org.hamcrest:hamcrest-core:jar:1.1:test
[INFO] | +- org.hamcrest:hamcrest-library:jar:1.1:test
[INFO] | +- org.hamcrest:hamcrest-integration:jar:1.1:test
[INFO] | +- commons-collections:commons-collections:jar:3.2.1:test
[INFO] | +- commons-io:commons-io:jar:2.4:test
[INFO] | +- commons-lang:commons-lang:jar:2.6:test
[INFO] | +- org.codehaus.plexus:plexus-utils:jar:3.0.10:test
[INFO] | +- org.freemarker:freemarker:jar:2.3.19:test
[INFO] | +- com.thoughtworks.paranamer:paranamer:jar:2.4:test
[INFO] | \- com.thoughtworks.xstream:xstream:jar:1.4.4:test
[INFO] | +- xmlpull:xmlpull:jar:1.1.3.1:test
[INFO] | \- xpp3:xpp3_min:jar:1.1.4c:test
[INFO] +- br.gov.frameworkdemoiselle.component.behave:demoiselle-behave-runner-webdriver:jar:1.3.1:test
[INFO] | +- org.seleniumhq.selenium:selenium-java:jar:2.37.1:test
[INFO] | | +- org.seleniumhq.selenium:selenium-android-driver:jar:2.37.1:test
[INFO] | | | \- org.seleniumhq.selenium:selenium-remote-driver:jar:2.37.1:test
[INFO] | | | +- cglib:cglib-nodep:jar:2.1_3:test
[INFO] | | | \- org.json:json:jar:20080701:test
[INFO] | | +- org.seleniumhq.selenium:selenium-chrome-driver:jar:2.37.1:test
[INFO] | | +- org.seleniumhq.selenium:selenium-htmlunit-driver:jar:2.37.1:test
[INFO] | | | +- net.sourceforge.htmlunit:htmlunit:jar:2.13:test
[INFO] | | | | +- xalan:xalan:jar:2.7.1:test
[INFO] | | | | | \- xalan:serializer:jar:2.7.1:test
[INFO] | | | | +- org.apache.commons:commons-lang3:jar:3.1:test
[INFO] | | | | +- org.apache.httpcomponents:httpmime:jar:4.3.1:test
[INFO] | | | | +- commons-codec:commons-codec:jar:1.8:test
[INFO] | | | | +- net.sourceforge.htmlunit:htmlunit-core-js:jar:2.13:test
[INFO] | | | | +- xerces:xercesImpl:jar:2.11.0:test
[INFO] | | | | +- net.sourceforge.nekohtml:nekohtml:jar:1.9.19:test
[INFO] | | | | +- net.sourceforge.cssparser:cssparser:jar:0.9.11:test
[INFO] | | | | | \- org.w3c.css:sac:jar:1.3:test
[INFO] | | | | \- org.eclipse.jetty:jetty-websocket:jar:8.1.12.v20130726:test
[INFO] | | | \- org.apache.httpcomponents:httpclient:jar:4.3:test
[INFO] | | | \- org.apache.httpcomponents:httpcore:jar:4.3:test
[INFO] | | +- org.seleniumhq.selenium:selenium-firefox-driver:jar:2.37.1:test
[INFO] | | | \- org.apache.commons:commons-exec:jar:1.1:test
[INFO] | | +- org.seleniumhq.selenium:selenium-ie-driver:jar:2.37.1:test
[INFO] | | | +- net.java.dev.jna:jna:jar:3.4.0:test
[INFO] | | | \- net.java.dev.jna:platform:jar:3.4.0:test
[INFO] | | +- org.seleniumhq.selenium:selenium-iphone-driver:jar:2.37.1:test
[INFO] | | +- org.seleniumhq.selenium:selenium-safari-driver:jar:2.37.1:test
[INFO] | | +- org.seleniumhq.selenium:selenium-support:jar:2.37.1:test
[INFO] | | | \- org.seleniumhq.selenium:selenium-api:jar:2.37.1:test
[INFO] | | \- org.webbitserver:webbit:jar:0.4.14:test
[INFO] | | \- io.netty:netty:jar:3.5.2.Final:test
[INFO] | \- org.reflections:reflections:jar:0.9.9-RC1:test
[INFO] | +- com.google.guava:guava:jar:11.0.2:test
[INFO] | \- org.javassist:javassist:jar:3.16.1-GA:test
[INFO] +- org.hamcrest:hamcrest-all:jar:1.3:compile
[INFO] +- com.sparkjava:spark-core:jar:1.1.1:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.2:compile
[INFO] | +- org.eclipse.jetty:jetty-server:jar:9.0.2.v20130417:compile
[INFO] | | +- org.eclipse.jetty.orbit:javax.servlet:jar:3.0.0.v201112011016:compile
[INFO] | | +- org.eclipse.jetty:jetty-http:jar:9.0.2.v20130417:compile
[INFO] | | | \- org.eclipse.jetty:jetty-util:jar:9.0.2.v20130417:compile
[INFO] | | \- org.eclipse.jetty:jetty-io:jar:9.0.2.v20130417:compile
[INFO] | \- org.eclipse.jetty:jetty-webapp:jar:9.0.2.v20130417:compile
[INFO] | +- org.eclipse.jetty:jetty-xml:jar:9.0.2.v20130417:compile
[INFO] | \- org.eclipse.jetty:jetty-servlet:jar:9.0.2.v20130417:compile
[INFO] | \- org.eclipse.jetty:jetty-security:jar:9.0.2.v20130417:compile
[INFO] +- org.subethamail:subethasmtp:jar:3.1.7:compile
[INFO] | +- javax.mail:mail:jar:1.4.4:compile
[INFO] | +- javax.activation:activation:jar:1.1.1:compile
[INFO] | \- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] +- org.slf4j:slf4j-simple:jar:1.6.1:compile
[INFO] +- org.codehaus.cargo:cargo-core-container-jboss:jar:1.1.2:compile
[INFO] | +- org.codehaus.cargo:cargo-core-api-generic:jar:1.1.2:compile
[INFO] | +- commons-discovery:commons-discovery:jar:0.4:compile
[INFO] | +- org.codehaus.cargo:cargo-core-api-container:jar:1.1.2:compile
[INFO] | +- org.codehaus.cargo:cargo-core-api-module:jar:1.1.2:compile
[INFO] | +- jdom:jdom:jar:1.0:compile
[INFO] | +- org.codehaus.cargo:cargo-core-api-util:jar:1.1.2:compile
[INFO] | +- org.apache.geronimo.specs:geronimo-j2ee-deployment_1.1_spec:jar:1.1:compile
[INFO] | +- dom4j:dom4j:jar:1.4:compile
[INFO] | +- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] | +- jaxen:jaxen:jar:1.0-FCS:compile
[INFO] | +- saxpath:saxpath:jar:1.0-FCS:compile
[INFO] | +- msv:msv:jar:20020414:compile
[INFO] | +- relaxngDatatype:relaxngDatatype:jar:20020414:compile
[INFO] | +- isorelax:isorelax:jar:20020414:compile
[INFO] | +- org.apache.ant:ant:jar:1.7.1:compile
[INFO] | +- org.apache.ant:ant-launcher:jar:1.7.1:compile
[INFO] | \- commons-logging:commons-logging:jar:1.0.4:compile
[INFO] +- postgresql:postgresql:jar:9.1-901.jdbc4:compile
[INFO] +- log4j:log4j:jar:1.2.16:compile
[INFO] +- junit:junit:jar:4.8.1:compile
[INFO] +- org.mockito:mockito-all:jar:1.9.5:compile
[INFO] +- org.powermock:powermock:pom:1.5:compile
[INFO] +- mockit:jmockit:jar:0.999.4:compile
[INFO] \- mockit:jmockit-coverage:jar:0.999.4:compile
podem estar afetando a forma como o log4j é utilizado pelo DBehave?
Peço que me explique como se eu tivesse 6 anos, pois pra mim não faz muito sentido.
Segue, ainda, o trecho de dependências do meu pom.xml:
<dependencies>
<!-- demoiselle-behave (jbehave/webdriver) -->
<dependency>
<groupId>br.gov.frameworkdemoiselle.component.behave</groupId>
<artifactId>demoiselle-behave-parser-jbehave</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>br.gov.frameworkdemoiselle.component.behave</groupId>
<artifactId>demoiselle-behave-runner-webdriver</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.subethamail</groupId>
<artifactId>subethasmtp</artifactId>
<version>3.1.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-core-container-jboss</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>
</dependencies>
Faça um experimento, remova todas as dependências que não vem por padrão no demoiselle behave. Obviamente o teste falhará, mas como ficará seu log?
No teste você simula um container web? Se sim, ele não pode estar cuspindo algum log?
Entendi, acho que o problema está em uma biblioteca que faz uso do slf4j, que aparentemente, está fazendo o deserviço ao log4j.
Obrigado.
Ok, se descobrir, peço a gentileza de postar a solução. Será um bom caso para outros colegas.
@marvinsiq, @botelhojp e @juliancesar, obrigado pela ajuda. Dado o retorno solicitado pelo @botelhojp, consegui resolver o problema substituindo a versão do sfl4j de 1.6.1 por 1.7.5.
Aparentemente, as versões anteriores a 1.7.5, não aceitavam configuração do log (eu estava tentando configurar via variáveis de sistema, -Dorg.slf4j.simpleLogger.defaultLogLevel=error, e/ou simplelogger.properties, mas ele não fazia uso de nenhuma delas).
Obrigado a todos os envolvidos.
Pessoal, como faço para desabilitar o log INFO:
Obrigado.