Отключить ведение журнала HttpClient - PullRequest
119 голосов
/ 06 февраля 2011

Я использую commons-httpclient 3.1 в комплекте интеграционных тестов.Журнал по умолчанию для HttpClient очень шумный, и я не могу его отключить.Я пытался следовать инструкциям здесь , но ни одна из них не имеет никакого значения.

В основном мне просто нужно закрыть регистратор org.apache.http.wire.Частично проблема в том, что я не знаю, какой тип регистратора пытается использовать HttpClient, и большая часть проблемы в том, что я никогда раньше не использовал эту библиотеку.Я попытался создать файл log4j.properties и поместить его в мою папку test / resources, изменить главный файл logging.properties в jre / lib и отправить в Maven различные параметры ведения журнала, как указано на странице logging * 1006.*, и ни один из них не имеет никакого значения.

Любая помощь приветствуется ... это сводит меня с ума.

ОБНОВЛЕНИЕ: Исправление: появляется выводНа самом деле речь идет о том, что jwebunit использует HttpClient, а не мой собственный.В любом случае, это нежелательно.

ОБНОВЛЕНИЕ: Спасибо за попытки до сих пор.Я попробовал все предложенное ниже, но все равно не повезло.У меня есть файл commons-logging.properties в моей папке src / test / resources со следующим содержимым

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

и файл 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

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

Однако, когда я запускаю свои тесты, я все равно получаю кучу выходных данных, таких как:

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]"

Этот вывод для всего, что встречается по проводам, делает эту библиотеку непригодной для меня ... то естьпока я не могу понять, как его выключить.Что-нибудь особенное, что мне нужно сделать, чтобы прочитать эту конфигурацию журнала?

Ответы [ 26 ]

0 голосов
/ 11 июля 2019

В моем случае я использую конфигурацию xml и добавляю ее в файл конфигурации

<logger name="org.apache.http">
    <level value="warn"/>
</logger>
0 голосов
/ 31 мая 2019

С:

  • Log2J 2 2.11.2
  • HttpClient 4.5.7 (остальной клиентasticsearch 7.0.0)
  • Использование файла свойств для настройки

Можно добавить:

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

Если в приведенном выше примере «httpclient» является выбранным вами логическим именем.

(протестировано в приложении Java 11 OpenFX.)

0 голосов
/ 05 марта 2019

Я перепробовал все вышеперечисленные решения безрезультатно. Самым близким вариантом для меня был тот, который предлагал создать logback.xml. Это сработало, однако ничего не было зарегистрировано. После игры с logback.xml это то, что я в итоге получил

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

Теперь все уровни ниже DEBUG регистрируются правильно.

0 голосов
/ 08 марта 2018

Просто добавьте эти две зависимости в файл pom: Я попытался и успешно после попытки обсуждения ранее.

<!--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 и информация по умолчанию при отладкене будет присутствовать;Вы можете использовать:

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

, чтобы определить информацию, которую вы хотите записать: например, Окончательный результат , как это.Будет присутствовать только информация, которую я хочу зарегистрировать.

0 голосов
/ 23 июня 2017

Я столкнулся с такой проблемой после установки HttpComponentsClientHttpRequestFactory для моего шаблона отдыха.

Установка OkHttpClientHttpRequestFactory должна решить проблему с ведением журнала мусора.

0 голосов
/ 28 мая 2016

Лучшее решение, которое я нашел, - это использовать плагин mavenforceforcer, чтобы полностью исключить использование регистрации общего пользования. Затем я добавил зависимость для регистрации в slf4j. Поэтому добавьте следующее в ваш pom.xml

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

, а также добавьте плагин maven -forcecer

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