HttpClient のログを無効にする 質問する

HttpClient のログを無効にする 質問する

私はcommons-httpclient統合テストスイートで3.1を使用しています。デフォルトのログはHttpClient非常にノイズが多く、オフにできないようです。指示に従って試してみましたが、ここしかし、どれも違いはありません。

ほとんどの場合、org.apache.http.wire ロガーをシャットダウンする必要があります。問題の一部は、どのタイプのロガーをHttpClient使用しようとしているのかがわからないことです。このライブラリを使用したことはありません。log4j.properties ファイルを作成して test/resources フォルダーに配置し、マスターのlogging.propertiesファイルを変更しjre/lib、で指定されたさまざまなログオプションをMavenに送信しようとしました。ログページ、そして、それらのどれも違いはありません。

アップデート:訂正: 問題の出力は、実際にはHttpClient私自身のものではなく、jwebunit の の使用によって発生しているようです。いずれにしても、これは望ましいことではありません。

アップデート:これまでの試みに感謝します。以下に提案されているすべてを試しましたが、まだうまくいきませんでした。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]"

回線を経由するすべてのものに対するこの出力により、このライブラリが使用できなくなっています...これは、これをオフにする方法がわかるまでです。このログ構成を読み込むために、何か特別な操作を行う必要がありますか?

ベストアンサー1

更新log4j.properties内容:

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

Log4j ライブラリがインストールされていない場合、HttpClient (および JWebUnit) は logback を使用することに注意してください。この状況では、以下を作成するか、または編集してlogback.xml含めます。

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

Log4jでWARNパッケージ名を使用してログレベルを設定するorg.apache.commons.httpclientlog4j.properties 動作しないでしょう予想通り:

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

これは、HttpClient (v3.1) のソースが次のログ名を使用するためです。

public static Wire HEADER_WIRE = new Wire(LogFactory.getLog("httpclient.wire.header"));
public static Wire CONTENT_WIRE = new Wire(LogFactory.getLog("httpclient.wire.content"));

おすすめ記事