demoiselle / behave

Demoiselle Behave
https://www.frameworkdemoiselle.gov.br/dbehave/
29 stars 53 forks source link

Como desabilitar o log INFO? #195

Closed mestihudson closed 10 years ago

mestihudson commented 10 years ago

Pessoal, como faço para desabilitar o log INFO:

56035 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 8 ms to scan 1 urls, producing 8 keys and 22 values 
56051 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 8 ms to scan 1 urls, producing 8 keys and 22 values 
56189 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 3 ms to scan 1 urls, producing 8 keys and 22 values 
61643 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 7 ms to scan 1 urls, producing 8 keys and 22 values 
61660 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 7 ms to scan 1 urls, producing 8 keys and 22 values 
61821 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 8 ms to scan 1 urls, producing 8 keys and 22 values 
67293 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 5 ms to scan 1 urls, producing 8 keys and 22 values 
67306 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 7 ms to scan 1 urls, producing 8 keys and 22 values 
67457 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 8 ms to scan 1 urls, producing 8 keys and 22 values 
72897 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 7 ms to scan 1 urls, producing 8 keys and 22 values 
72909 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 3 ms to scan 1 urls, producing 8 keys and 22 values 
73033 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 7 ms to scan 1 urls, producing 8 keys and 22 values 
78435 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 7 ms to scan 1 urls, producing 8 keys and 22 values 
78453 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 7 ms to scan 1 urls, producing 8 keys and 22 values 
78604 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 3 ms to scan 1 urls, producing 8 keys and 22 values 
84033 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 6 ms to scan 1 urls, producing 8 keys and 22 values 
84048 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 7 ms to scan 1 urls, producing 8 keys and 22 values 
84154 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 6 ms to scan 1 urls, producing 8 keys and 22 values 
89631 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 4 ms to scan 1 urls, producing 8 keys and 22 values 
89642 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 3 ms to scan 1 urls, producing 8 keys and 22 values 
89750 [pool-1-thread-1] INFO org.reflections.Reflections - Reflections took 6 ms to scan 1 urls, producing 8 keys and 22 values

Obrigado.

marvinsiq commented 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

mestihudson commented 10 years ago

@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...

botelhojp commented 10 years ago

@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>
-->
marvinsiq commented 10 years ago

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.

mestihudson commented 10 years ago

@marvinsiq ainda...nada, e, a propósito, @botelhojp, o que eu quero é exatamente o exposto pelo @marvinsiq.

botelhojp commented 10 years ago

@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:

log4j

Peço, por gentileza, informar qual a versão do DBehave e do Reflections que encontra-se no seu classpath.

mestihudson commented 10 years ago

Segue: dependency-hierarchy

botelhojp commented 10 years ago

@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.

mestihudson commented 10 years ago

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>
botelhojp commented 10 years ago

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?

botelhojp commented 10 years ago

No teste você simula um container web? Se sim, ele não pode estar cuspindo algum log?

mestihudson commented 10 years ago

Entendi, acho que o problema está em uma biblioteca que faz uso do slf4j, que aparentemente, está fazendo o deserviço ao log4j.

Obrigado.

botelhojp commented 10 years ago

Ok, se descobrir, peço a gentileza de postar a solução. Será um bom caso para outros colegas.

mestihudson commented 10 years ago

@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.