Estoy usando commons-httpclient 3.1 en una integración de la suite de prueba. El registro predeterminado para HttpClient es extremadamente ruidoso y me parece que no puede apagarlo. He intentado seguir las instrucciones aquí pero ninguno de ellos hace ninguna diferencia.

Su mayoría sólo tengo que hacer la org.apache.http.alambre registrador de callar. Parte del problema es que no sé qué tipo de registrador de HttpClient está tratando de usar y la mayoría de los problema es que nunca he usado esta biblioteca antes. Yo intenté crear una log4j.archivo de propiedades y colocándolo en mi prueba/carpeta de recursos, la modificación de la maestría de registro.archivo de propiedades en jre/lib, y el envío de las diversas opciones de registro para Maven como se especifica en el página de registro de, y ninguno de ellos hace ninguna diferencia.

Cualquier ayuda es muy apreciada…esto me está volviendo loco.

ACTUALIZACIÓN: UNA corrección: parece que la salida en cuestión es en realidad originarios a través de jwebunit del uso de HttpClient, no a mi. De cualquier manera, no es deseable.

ACTUALIZACIÓN: Gracias por los intentos hasta ahora. He intentado todo lo que se sugiere a continuación, pero aún no hay suerte. Tengo un archivo de commons-logging.propiedades en mi src/test/resources carpeta con el siguiente contenido

org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory
log4j.configuration=log4j.properties

y un archivo log4j.propiedades en la misma carpeta con el siguiente contenido

log4j.rootLogger=ERROR, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n

#This is the line that should make httpclient shut up
log4j.logger.org.apache.http=ERROR

Sin embargo, cuando ejecuto mis pruebas me dan un montón de salida como esta:

21:57:41.413 [main] DEBUG org.apache.http.wire - << "                                   [\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "                                   [\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "                               </ul>[\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "    [\n]"
21:57:41.424 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "                   </div>[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "                </li>[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "            [\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "            [\r][\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "        </ul>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "<div class="details">[\n]"
21:57:41.442 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "<div class="details-body details-precis  ">[\n]
"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "<div class="details-state">[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
Destroying 1 processes21:57:41.465 [main] DEBUG org.apache.http.wire - << "[\r][\n]"

Esta salida para todo lo que viene a través de la red es hacer de esta biblioteca inutilizable para mí…que es hasta que pueda averiguar cómo desactivarla. Hay algo en especial que tengo que hacer para obtener este registro de lectura de configuración en?

  • Para todos los que vienen a través de este problema: asegúrese de agregar -Dlog4j.debug a su VM opciones para garantizar que el derecho fichero de configuración se carga
  • Consulte stackoverflow.com/questions/1436761/…. Para extracto: public class Main { static { System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); } // Rest of class as before }
  • Oficial doc: hc.apache.org/httpclient-3.x/logging.html
  • Hizo esto nunca se resuelven de OP. Este mismo problema me está matando.
  • Es esta solucionado? Intentó adjudicar de las respuestas, sin suerte.
  • Holy crap. Esto me hizo volver a HttpURLConnection

InformationsquelleAutor Matt Baker | 2011-02-06

27 Comentarios

  1. 81

    Actualización log4j.properties incluir:

    log4j.logger.httpclient.wire.header=WARN
    log4j.logger.httpclient.wire.content=WARN

    Tenga en cuenta que si Log4j biblioteca no está instalado, HttpClient (y por lo tanto JWebUnit) utilizará logback. En esta situación, crear o editar logback.xml incluir:

    <configuration>
        <logger name="org.apache" level="WARN" />
        <logger name="httpclient" level="WARN" /> 
    </configuration>

    Establecer el nivel de registro para WARN con Log4j utilizando el nombre del paquete org.apache.commons.httpclient en log4j.properties no funcionará como se esperaba:

    log4j.logger.org.apache.commons.httpclient=WARN

    Esto es debido a que la fuente de HttpClient (v3.1) utiliza los siguientes nombres de registro:

    public static Wire HEADER_WIRE = new Wire(LogFactory.getLog("httpclient.wire.header"));
    public static Wire CONTENT_WIRE = new Wire(LogFactory.getLog("httpclient.wire.content"));
    • En la 4.2.1 fuente, el registro de nombres son: «org.apache.http.los encabezados» y «org.apache.http.alambre», aunque incluso el uso de ellos, el ruido de apache registro no parecen apagar para mí.
    • Gracias!!! También: Si usted tiene este problema en algún lugar en su propio código, donde el uso de httpclient y ya no la uso Log4j: También recuerde incluir el log4j jar en la ruta de clases …
  2. 27

    Nota: parte de esta respuesta podría repetir cosas que ya se sabe (o cree saber), pero hay un poco de des-información flotando alrededor en esta pregunta, así que voy a empezar por el principio y explicarlo todo

    • Commons HttpClient utiliza Commons-Logging para todas sus necesidades de registro.
    • Commons-Logging no es un completo registro de marco, sino que es un contenedor de varios de los marcos de registro
    • Que significa que cuando se desea controlar el registro de salida, usted (en su mayoría) terminan de configurar una biblioteca distinta Commons-Logging, pero porque Commons-Logging se envuelve alrededor de varias otras bibliotecas, nos es difícil adivinar que uno a configurar sin saber exactamente su instalación.
    • Commons-Logging puede iniciar sesión a log4j, pero también puede registrar a java.util.logging (JDK1.4 inicio de sesión)
    • Commons-Logging intenta ser inteligente y supongo que el registro de marco que ya están en uso, y enviar sus registros a que.
    • Si usted no tiene ya un marco de registros, y se ejecuta en una versión de JRE que la 1.4 o superior (que realmente debería ser), entonces probablemente será el envío de sus mensajes de registro a la JDK de registro (java.util.logging)
    • Confiar en Commons-Logging del autodescubrimiento mecanismo es propensa a errores. Simplemente añadiendo log4j.jar classpath podría causar que el interruptor que el mecanismo de registro de usa, que probablemente no es lo que usted quiere
    • Es preferible para usted para decirle explícitamente Commons-Logging que el registro de biblioteca para uso de
    • Usted puede hacer esto mediante la creación de un commons-logging.properties archivo, como por estas instrucciones
    • Los pasos que desea seguir para configurar los bienes comunes-httpclient de registro son
      1. Decidir que subyacen marco de registros que desea utilizar. Hay un número de opciones, pero probablemente log4j o java.util.logging son las mejores opciones para usted.
      2. Configurar el commons-logging archivo de propiedades a punto para la correcta Log aplicación. por ejemplo para usar log4j, poner esto en el archivo de propiedades: org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger, o para utilizar el JDK de registro conjunto de org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger. Estos también se pueden establecer como propiedades del sistema (por ejemplo, el uso de -D en la línea de comandos).
      3. Configurar el subyacente implementación de registro (por ejemplo, log4j) para ignorar los mensajes que no quieres, y la salida de los mensajes que usted desea.

    Que una gran cantidad de pasos, pero que es lo que se necesita. Los desarrolladores de Apache commons tienden a asumir que usted ya dispone de un registro de marco configurado, y que pueden hacer que uno se auto-descubrimiento.

    Si eso no es cierto para usted, a continuación, tiende a ser un poco más de trabajo para conseguir que las cosas funcionen.

    • Esta es una información muy útil; siento realmente como se debe añadir a este página. ¿Has escrito sólo para esto?
    • Hombre, la respuesta a esto es genial, pero no he logrado hacer que funcione. Estoy usando Dropwizard, y he probado de todo, usted ha mencionado, fue en vano :'(
  3. 18

    Puedo poner esto en mi archivo de configuración de log4j

    log4j.logger.org.apache.http.wire=WARN

    Esto limita la salida a la Advertencia de nivel o por encima de

  4. 18

    Esta trabajado para mis pruebas;

    java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(java.util.logging.Level.FINEST);
    java.util.logging.Logger.getLogger("org.apache.http.headers").setLevel(java.util.logging.Level.FINEST);
    System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
    System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
    System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "ERROR");
    System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "ERROR");
    System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.headers", "ERROR");
  5. 17

    Para log4j, agregue lo siguiente a log4j.properties (en la aplicación del source directorio):

    log4j.logger.org.apache=WARN
    log4j.logger.httpclient=WARN

    Para logback, los siguientes logback.xml va a matar el ruido:

    <configuration>
        <logger name="org.apache" level="WARN" />
        <logger name="httpclient" level="WARN" /> 
    </configuration>
    • Yo estoy usando el de log4j. Agregar las dos primeras líneas en el registro de solver mi problema completamente. Todos mis otros mensajes de registro aparecen de acuerdo a los niveles establecidos. Mientras que los logs de apache no. De gran ayuda. Gracias.
    • Es probable que varían dependiendo de su situación, pero para deshabilitar el terriblemente registro detallado habilitado fuera de la caja con el SDK de AWS, este es el único que trabajaba.
  6. 11

    Tomó demasiado tiempo para averiguarlo, pero JWebUnit viene incluido con el Logback componente de registro, por lo que incluso no utilizar log4j.properties o commons-logging.properties.

    En su lugar, cree un archivo llamado logback.xml y colocarlo en la carpeta del código fuente (en mi caso, src):

    <configuration debug="false">
      <!-- definition of appender STDOUT -->
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
        </encoder>
      </appender>
    
      <root level="ERROR">
        <!-- appender referenced after it is defined -->
        <appender-ref ref="STDOUT"/>
      </root> 
    </configuration>

    Logback parece estar todavía en desarrollo y de la API parece estar cambiando, por lo que este ejemplo de código se puede fallar en el futuro. Véase también esta pregunta de StackOverflow.

    • Que belleza. Casi me mató a un gato porque de esta cosa. Me estaba volviendo loco.
    • Esta fue la solución para mí. Creo que es porque otras bibliotecas yo estaba incluyendo transitivamente incluido logback, por lo que se quedó encerrada en este registrador.
  7. 8

    Hacemos uso de XML, en lugar de un archivo de propiedades, configurar nuestro registro de salida. El código siguiente trabajado para silenciar a esta charla.

    <logger name="org.apache.commons.httpclient">
        <level value="fatal"/>
    </logger>
    
    <logger name="httpclient.wire.header">
        <level value="fatal"/>
    </logger>
    
    <logger name="httpclient.wire.content">
        <level value="fatal"/>
    </logger>
  8. 7

    He tenido este problema, mientras que el uso de RestAssured con JUnit. Para mí este enfoque programático trabajado:

    @BeforeClass
    public static void setUpClass() {
        ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger("org.apache.http");
        root.setLevel(ch.qos.logback.classic.Level.INFO);
    
        //...
    }
    • Fantástico, la única solución que funcionó para mí. Muchas gracias.
  9. 4

    En su log4.propiedades – ¿tiene este conjunto, al igual que yo a continuación y no otros org.apache.http registradores de establecer en el archivo?

    -org.apache.commons.logging.simplelog.log.org.apache.http=ERROR

    También si usted no tiene ningún nivel de registro especificado para org.apache.http en su log4j propiedades de archivo, a continuación, heredará el log4j.rootLogger nivel. Así que si usted tiene log4j.rootLogger conjunto para que vamos a decir de ERROR y sacar org.apache.http ajustes en su log4j.las propiedades que debe hacer es única de registro de ERROR mensajes sólo por la herencia.

    ACTUALIZACIÓN:

    Crear un commons-logging.properties archivo y agregue la siguiente línea. También asegúrese de que este archivo está en la ruta de clases.

    org.apache.commons.la tala de árboles.LogFactory=org.apache.commons.la tala de árboles.impl.Log4jFactory

    Añadido un formulario de archivo log4j y el código para invocar para el OP. Este log4j.propiedades debe estar en el CLASSPATH. Estoy asumiendo stdout por el momento.

    log4j.configuration=log4j.properties 
    log4j.rootLogger=ERROR, stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n
    
    log4j.logger.org.apache.http=ERROR

    Aquí está el código que usted necesita para agregar a su clase para invocar el registrador.

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory; 
    
    public class MyClazz
    {
        private Log log = LogFactory.getLog(MyClazz.class);
        //your code for the class
    }
    • Yo no tenía necesidad de un log4j.propiedades de archivo antes de intentar utilizar HttpClient. He intentado poner las líneas en mi src/test/resources/log4j.propiedades de archivo, pero no hace ninguna diferencia. Es incluso el derecho a poner commons.opciones de registro en log4j.propiedades?
    • Sí commons-logging es simplemente un contenedor de alrededor de log4j. ¿Cómo se puede invocar el registrador en su clase de prueba?
    • (Después de la actualización) lo hice para que la línea anterior era el único en mi log4j.archivo de propiedades y todavía escupe todo.
    • Yo no invocar el registrador, HttpClient hace por su propia cuenta.
    • Se dice en el enlace que – «Nota: Log4j no está incluido en el HttpClient de la distribución». Así que sin duda hay que añadir a tu CLASSPATH. Estás viendo el resultado en la salida estándar (stdout) (consola) o en un archivo de registro? Voy a crear un ejemplo log4h archivo con el código para invocar para usted.
    • el log4j-1.2.14.jar termina en destino\classes\META-INF\lib siempre que voy a construir ya, junto con commons-logging-1.0.4.jar. Me siento como esto tiene que ser algo estúpido.
    • Es el objetivo\test-classes\log4j.propiedades en CLASSPATH cuando mis pruebas de ejecución? ¿Cómo puedo saber? He añadido el LogFactory.getLog línea de mi clase, pero no hizo ninguna diferencia, todavía me las ruidosas HttpClient de salida…
    • ¿Necesita tanto de log4j y commons-logging? Si se invoca el registrador como la forma en que me mostró en el ejemplo, se debe utilizar commons-logging. No estoy seguro de por qué su archivo log4j termina en el META-INF\lib. Se acaba de hacer mvn install o estás haciendo en realidad montar jar-con-las dependencias?
    • Estoy construyendo un plugin para un Atlassian herramienta y que parecen seguir el MVN convenios en su carpeta de compilación. Cuando se hace una integración de prueba de construir paquetes de tu plugin, se inicia la aplicación web, y despliega su plugin para ello. segura, a continuación, inicia las pruebas de integración que interactuar con el servidor web. Es el registro de salida de las pruebas de integración que se me está matando.
    • también, es el log4j archivo JAR que entra en META-INF\lib. El log4j.propiedades de archivo src/test/resources en destino/de prueba-clases en tiempo de compilación.
    • La integración de la suite de prueba es parte de su clase de prueba o de Atlassian herramienta ?
    • Parte de mis clases de prueba
    • Ha añadido el código que puse arriba?
    • sí, usted puede ver el código aquí: studio.plugins.atlassian.com/source/browse/EEP/trunk
    • En realidad, creo que podría ser el uso de la más reciente documentación. Estoy usando el «legado» de httpclient cuyo registro de la documentación está aquí: hc.apache.org/httpclient-legacy/logging.html. Nada de eso funciona bien.
    • hizo un buen punto. Se me olvidó añadir que la parte que vamos a commons-logging para usar log4j. Como ya he dicho es una envoltura alrededor de lo que el registro de la aplicación que se utiliza. He modificado mi log4j para añadir esa línea. Háganos saber si el que hizo la diferencia. Yo creo que sí.

  10. 4

    Forma sencilla de Log4j y HttpCLient (v3.1 en este caso, debe trabajar para mayores, podría requerir cambios menores)

    Asegúrese de que todas las dependencias son correctos, y MD5 tus descargas!!!!

    import org.apache.commons.httpclient.HttpClient;  
    import org.apache.log4j.Level;  
    import org.apache.log4j.Logger;  
    
    ---
    
    Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.WARN);
    Logger.getLogger("httpclient.wire.header").setLevel(Level.WARN);
    Logger.getLogger("httpclient.wire.content").setLevel(Level.WARN);
    
    HttpClient client = new HttpClient();
    • Debo colocarlo en main método?
    • usted puede
  11. 4

    He visto afectados por el mismo problema desde hace bastante tiempo ahora y finalmente se decidió a buscar en este. Resultó que el problema es que mi proyecto tenía una dependencia en http-builder-0.5.2.jar los que combinan un log4j.xml archivo de dentro de sí mismo. Y, efectivamente, el nivel de registro para org.apache.http.cable de DEPURACIÓN! El camino me encontré con que era sólo para ir a través de todos los archivos jar en mi dependencias y hacer «tarro de las tvf» y grepping de log4j.

    Mientras que este descubrimiento llevó a la eventual solución de la que se sumó la versión de mi http-generador de dependencia a 0.6, todavía me sorprende lo que debe haber pasado a través de los desarrolladores de la mente cuando la combinación de las log4j.xml archivo en el archivo jar. De todos modos, no creo que sea relevante a este hilo, por ahora. Pero pensé que es útil mencionar que esta solución que he encontrado que cuando yo estaba buscando una solución antes de ahora, la mía nunca llegó. Esperemos que alguien se encuentre útil.

    • Problema Similar, mientras que el uso de <!-- https://mvnrepository.com/artifact/com.fredericboisguerin.excel/excel-reader-writer --> <dependency> <groupId>com.fredericboisguerin.excel</groupId> <artifactId>excel-reader-writer</artifactId> <version>2.1</version> </dependency>. Quita la dependencia y los registros se habían ido. Gracias!
  12. 3

    Tuve el mismo problema con JWebUnit. Por favor, observe que si utiliza una distribución binaria, a continuación, Logback es un defecto del registrador. Para usar log4j con JWebUnit he realizado los siguientes pasos:

    • eliminado Logback frascos
    • agregar lod4j puente de la biblioteca para sfl4j – slf4j-log4j12-1.6.4.jar
    • agregar log4j.propiedades

    Probablemente usted no tiene que quitar Logback frascos, pero usted va a necesitar algún paso adicional a la fuerza slf4j usar log4j

    • Gracias, yo tenía el mismo problema cuando se utiliza OpenRdf. Todos los otros consejos en este hilo que parecía no tener efecto hasta que me quita el logback frascos, ahora el registro es bien tranquilo.
  13. 3

    Las siguientes 2 líneas resuelto mi problema completamente:

    Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.ERROR);
    Logger.getLogger("httpclient").setLevel(Level.ERROR);
    • Esto funcionó para mí también, pero no tenía la necesidad de la: Registrador.getLogger(«org.apache.commons.httpclient»).setLevel(de Nivel.ERROR);
  14. 2

    Me llevó a este post cuando la búsqueda de solución para un problema similar. Tim que la respuesta fue muy útil. como Matt Baker, sólo quiero apagar httpClient de registro sin demasiado configuración. Como no estábamos seguros de que el registro de aplicación debajo común-el registro se ha utilizado, Mi solución fue la fuerza es el uso de log4j por el lanzamiento de log4j archivo jar en la ruta de clase. El ajuste predeterminado de la configuración de log4j apaga común httpclient la salida de depuración. Por supuesto, para hacerlo más robusto, puede crear comunes de registro.propiedades y log4j.los archivos de propiedades para definir su registro de configuraciones.

  15. 2

    Tratar de poner

    org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog

    en su commons-logging.propiedades

  16. 2

    Agregar el siguiente líneas en el log4j propiedad del archivo y se le cierran los registros de http :- log4j.logger.org.apache.http=OFF

  17. 2

    Para apache 4.5.3, si desea mover el nivel para todos los apache http registro de cliente para Advertir, uso:

    log4j.logger.org.apache=WARN
  18. 2

    Yo también tenía el mismo problema. Toda la mesa se llenó de [main] DEBUG org.apache.http.wire mientras se ejecutan las pruebas.

    La solución que funcionó para mí fue la creación de un logback-test.xml
    src/test/resources/logback-test.xml como en https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/resources/logback-test.xml (ref – https://github.com/bonigarcia/webdrivermanager/issues/203)

    Para ver mi registro de información, que sustituyó registrador nombre=»io.github.bonigarcia» con mi nombre del paquete

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <logger name="com.mypackage" level="DEBUG" />
        <logger name="org" level="INFO" />
        <logger name="com" level="INFO" />
    
        <root level="INFO">
            <appender-ref ref="STDOUT" />
        </root>
    
    </configuration>
  19. 1

    Tuve este mismo problema cuando se ejecuta jwebunit pruebas de integración. Me fijo por la exclusión de logback y la adición de slf4j-log4j12, así:

    <dependency>
      <groupId>net.sourceforge.jwebunit</groupId>
      <artifactId>jwebunit-htmlunit-plugin</artifactId>
      <version>3.0</version>
      <exclusions>
        <exclusion>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
    </dependency>
  20. 1

    Esto me tomó las edades, para averiguar de una vez, usted necesita esto:

    log4j.logger.httpclient.wire=ERROR

    Supongo HttpClient utiliza «httpclient.alambre» como su registrador de nombre, no «org.apache.commons.httpclient».

    Sneaky bribones.

  21. 0

    La mejor solución que encontré fue usar maven enforcer plugin con el fin de evitar commons-logging de ser utilizado por completo. Luego he añadido el slf4j dependencia para el registro en su lugar. Por lo que añadir el siguiente a su pom.xml

    <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>[your version here]</version>
        </dependency>

    y también agregar el maven-enforcer plugin

    <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-enforcer-plugin</artifactId>
               <version>[your version here]</version>
               <executions>
                   <execution>
                       <id>enforce</id>
                       <configuration>
                           <rules>
                               <DependencyConvergence />
                               <bannedDependencies>
                                   <excludes>
                                       <exclude>commons-logging:commons-logging</exclude>
                                   </excludes>
                               </bannedDependencies>
                           </rules>
                       </configuration>
                       <goals>
                           <goal>enforce</goal>
                       </goals>
                   </execution>
               </executions>
           </plugin>
    • Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M2:enforce (enforce) on project gs-serving-web-content: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed
  22. 0

    He experimentado este problema después de establecer HttpComponentsClientHttpRequestFactory para mi resto de la plantilla.

    Configuración OkHttpClientHttpRequestFactory debe resolver el problema con la basura de registro.

  23. 0

    Simplemente añadir estas dos dependencias en el pom de archivo:
    He intentado y tener éxito después de probar la discusión antes de que.

    <!--Using logback-->
    <dependency>
       <groupId>commons-logging</groupId>
       <artifactId>commons-logging</artifactId>
       <version>1.2</version>
    </dependency>
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-logging</artifactId>
    </dependency>

    Commons-Logging -> Logback predeterminada y la Información de Depuración no estar presente;
    Usted puede utilizar:

    private static Logger log = LoggerFactory.getLogger(HuaweiAPI.class);

    para definir la información que desea registrar:como
    Resultado Final
    como esto. Sólo la información que desea iniciar la sesión estará presente.

  24. 0

    He probado todas las soluciones anteriores fue en vano. El soution que llegó el más cercano para mí fue el que sugiere la creación de un logback.xml. Que trabajaba, sin embargo nada de lo que se registra. Después de jugar un rato con el logback.xml esto es lo que terminó con

    <configuration>
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <withJansi>true</withJansi>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        </encoder>
      </appender>
      <root level="INFO">
        <appender-ref ref="STDOUT"/>
      </root>
    </configuration>

    Ahora Todos los niveles por debajo de DEPURACIÓN obtiene registra correctamente.

  25. 0

    Con:

    • Log2J 2 2.11.2
    • HttpClient 4.5.7 (elasticsearch 7.0.0 resto del cliente)
    • El uso de un archivo de propiedades para configurar

    Uno puede agregar:

    logger.httpclient.name=org.apache.http
    logger.httpclient.level=info

    Con ‘httpclient’ en el ejemplo anterior de ser un nombre lógico que usted elija.

    (Probado en Java 11 OpenFX aplicación).

  26. 0

    En mi caso yo uso xml de configuración, y añado esto para el archivo de configuración

    <logger name="org.apache.http">
        <level value="warn"/>
    </logger>

Dejar respuesta

Please enter your comment!
Please enter your name here