私は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.httpclient
log4j.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"));