HttpClientロギングを無効にする


133

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

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

どんな助けもありがたいです...これは私を狂わせます。

更新:訂正:問題の出力は、実際にはjwebunitによるHttpClientの使用によるものであり、私自身によるものではないようです。いずれにしても、それは望ましくありません。

更新:これまでの試みをありがとう。以下に提案されているすべてを試しましたが、まだうまくいきません。私のsrc / test / resourcesフォルダーにcommons-logging.propertiesファイルがあり、次の内容が含まれています

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

ワイヤーを介して出くわすすべてのこの出力は、このライブラリーを私にとって使用不可能にします...それは私がそれをオフにする方法を見つけることができるまでです。このログ構成を読み込むために何か特別なことはありますか?


この問題に遭遇した場合:-Dlog4j.debugVMオプションに追加して、正しい構成ファイルが読み込まれるようにしてください
Tommy

3
stackoverflow.com/questions/1436761/…を参照してください。抜粋: public class Main { static { System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); } // Rest of class as before }
PVS 2015年


3
これでOPの問題は解決しましたか?この正確な問題は私を殺しています。
Collin Bell

2
これは解決されましたか?運のない答えを割り当てようとしました。
Markvds 2017

回答:


85

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>

ログレベルの設定WARNLog4jのパッケージ名を使用してと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"));

19
4.2.1のソースでは、ログ名は "org.apache.http.headers"と "org.apache.http.wire"ですが、これらを使用しても、うるさいapacheのログ記録は私には止まらないようです。
Tinclon

ありがとうございました!!!また、独自のコードのどこかにこの問題があり、httpclientを使用していて、Log4jをまだ使用していない場合:log4j jarをクラスパスに含めることも忘れないでください...
FelixD

30

注:この回答の一部は、あなたがすでに知っている(またはあなたが知っていると思う)ことを繰り返すかもしれませんが、この質問にはあちこちに誤った情報が浮かんでいるので、最初から始めて、それをすべて綴ります

  • Commons HttpClientは、すべてのロギングのニーズにCommons-Loggingを使用します。
  • Commons-Loggingは完全なロギングフレームワークではなく、いくつかの既存のロギングフレームワークのラッパーです。
  • つまり、ログ出力を制御したい場合、(ほとんどの場合)Commons-Logging以外のライブラリを構成することになります、Commons-Loggingは他のいくつかのライブラリをラップするため、知らないうちに構成するライブラリを推測することは困難です。あなたの正確なセットアップ。
  • Commons-Loggingはlog4jに記録できますが、java.util.logging(JDK1.4ロギング)にも記録できます
  • Commons-Loggingは賢くなり、すでに使用しているロギングフレームワークを推測し、それにログを送信します。
  • ロギングフレームワークがまだなく、1.4以上のJREで実行している場合(実際にそうする必要があります)、おそらくログメッセージをJDKロギング(java.util.logging)に送信します。
  • Commons-Loggingの自動検出メカニズムに依存すると、エラーが発生しやすくなります。単にlog4j.jarクラスパスに追加すると、使用するロギングメカニズムが切り替わりますが、これはおそらく望んでいるものではありません
  • Commons-Loggingに、使用するロギングライブラリを明示的に指定することをお勧めします
  • これを行うには、これらの指示に従ってcommons-logging.propertiesファイルを作成します
  • commons-httpclientロギングを構成するために実行する手順は次のとおりです。
    1. 使用する基本的なロギングフレームワークを決定します。いくつかの選択肢がありますが、おそらく、log4jまたはjava.util.loggingあなたにとって最良の選択肢です。
    2. 正しいLog実装を指すようにcommons-loggingプロパティファイルを設定します。たとえば、log4jを使用するには、これをプロパティファイルに入れます。org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLoggerまたはJDKロギングセットを使用しますorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger。これらは、システムのプロパティとして設定することもできます(-Dコマンドラインで使用するなど)。
    3. 不要なメッセージを無視し、必要なメッセージを出力するように、基盤となるロギング実装(log4jなど)を構成します。

それは多くのステップですが、それはそれが取るものです。Apache-commonsの開発者は、すでにロギングフレームワークが設定されていると想定する傾向があり、自動検出によって、ロギングフレームワークを特定できます。
それがあなたに当てはまらない場合は、物事を実行するために少し多くの仕事になる傾向があります。


1
これは非常に役立つ情報です。このページに追加する必要があると本当に思っています。これだけのために書きましたか?
natem345 2013年

1
男、この答えは素晴らしいですが、私はそれを機能させることができませんでした。私はDropwizardを使用しており、あなたが言及したすべてを試してみましたが、役に立たなかった: '(
Vic Seedoubleyew

19

私はこれを私のlog4j設定ファイルに入れました

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

これにより、出力が警告レベル以上に制限されます


19

これは私のテストではうまくいきました。

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");

18

log4jの場合、以下をlog4j.properties(アプリケーションのsourceディレクトリに)追加します。

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

ログバックの場合、次のlogback.xmlようにするとノイズがなくなります。

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

1
私はlog4jを使用しています。ログソルバーの最初の2行を完全に追加します。他のすべてのログメッセージは、設定したレベルに従って表示されます。一方、Apacheログにはありません。大変助かります。ありがとう。
アルンThundyill Saseendran 2014年

これは状況に応じて異なる可能性がありますが、AWS SDKですぐに有効になっている非常に詳細なログを無効にする場合、これが機能した唯一のものです。
マットベイカー、

11

これを見つけるには時間がかかりすぎましたが、JWebUnitにはLogbackロギングコンポーネントがバンドルされているため、log4j.propertiesまたはも使用しませんcommons-logging.properties

代わりに、というファイルを作成logback.xmlし、ソースコードフォルダー(私の場合は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はまだ開発中であるようで、APIはまだ変更されているようなので、このコードサンプルは将来失敗する可能性があります。このStackOverflowの質問も参照してください。


1
あなたの美しさ。このせいで猫を殺そうとしていた。私を狂わせていた。
マニッシュパテル

これが私の解決策でした。私が含めていた他のライブラリーは推移的にログバックを含めたため、このロガーにロックされたためだと思います。
ネイサン

10

JUnitでRestAssuredを使用しているときにこの問題が発生しました。私にとってこのプログラム的なアプローチはうまくいきました:

@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);

    //...
}

2
素晴らしい、それが私のために働いた唯一の解決策。本当にありがとう。
ラソート、

ありがとうございました!テストメソッドの開始時にまったく同じコードを使用していたが、何もしなかった。それ自体@Beforeまたは@BeforeClass関数に配置すると、美しく機能しました。
ExactaBox

8

ログ出力の構成には、プロパティファイルではなくXMLを使用します。次のコードはこのおしゃべりを沈黙させるために機能しました。

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

4

あなたのlog4.propertiesに-私が以下のようにこれをorg.apache.http設定していて、ファイルに他のロガーが設定されていませんか?

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

またorg.apache.http、log4jプロパティファイルでログレベルが指定されていない場合は、そのlog4j.rootLoggerレベルを継承し ます。したがって、log4j.rootLoggerERRORとorg.apache.http設定して、log4j.propertiesの設定を削除するとERROR、継承によってのみメッセージが記録されるようになります。

更新:

commons-logging.propertiesファイルを作成し、次の行を追加します。また、このファイルがCLASSPATHにあることを確認してください。

org.apache.commons.logging.LogFactory = org.apache.commons.logging.impl.Log4jFactory

完成したlog4jファイルと、OP用に呼び出すためのコードを追加しました。このlog4j.propertiesは、CLASSPATHに含まれている必要があります。今のところ標準出力を想定しています。

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

これは、ロガーを呼び出すためにクラスに追加する必要のあるコードです。

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
}

HttpClientを使用する前は、log4j.propertiesファイルは必要ありませんでした。行をsrc / test / resources / log4j.propertiesファイルに入れてみましたが、違いはありませんでした。commons.loggingオプションをlog4j.propertiesに配置することは適切ですか?
マットベイカー

うん、commons-loggingはlog4jのラッパーにすぎません。テストクラスでロガーをどのように呼び出しますか?
CoolBeans

(更新後)上記の行が私のlog4j.propertiesファイル内の唯一の行であり、それでもすべてを吐き出すようにしました。
Matt Baker、

1
ロガーを呼び出すのではなく、HttpClientが独自にロガーを実行します。
マットベイカー

「注:Log4jはHttpClientディストリビューションに含まれていません。」したがって、間違いなくそれをCLASSPATHに追加する必要があります。stdout(コンソール)またはログファイルに出力が表示されていますか?サンプルのlog4hファイルを作成して、それを呼び出すコードを記述します。
CoolBeans

4

シンプルな方法Log4jとHttpCLient(この場合、v3.1、より高い環境で機能するはずであり、小さな変更が必要になる可能性があります)

すべての依存関係が正しいことを確認し、ダウンロードをMD5してください!!!!

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();

mainメソッドに配置する必要がありますか?
パーサー

@parsecerあなたができる
WiR3D

4

私はかなり長い間同じ問題に悩まされ、ついにこれを調査することに決めました。問題は、私のプロジェクトが、log4j.xmlファイルをバンドルしたhttp-builder-0.5.2.jarに依存していたことです。そして確かに、org.apache.http.wireのログレベルはデバッグでした。私が見つけた方法は、依存関係にあるすべてのjarファイルを調べ、「jar tvf」を実行し、log4jに対してgreppingを実行することでした。

この発見により、http-builder依存関係のバージョンを0.6に上げるという最終的な解決策が導き出されましたが、それでも、log4j.xmlファイルをjarファイルにバンドルする際に、開発者が何を考えていたのかがわかりません。とにかく、おそらく今のところこのスレッドには関係ありません。しかし、私が見つけたこの解決策について言及することは、私が以前に解決策を探していたとき、私のものが思いつかなかったことを考えると役立つと考えました。うまくいけば、誰かがこれが役に立つと思うでしょう。


使用中の同様の問題<!-- 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>。依存関係を削除し、ログが消えました。ありがとうございました!
adom 2017年

3

JWebUnitでも同じ問題が発生しました。バイナリ配布を使用する場合、Logbackがデフォルトのロガーであることに注意してください。JWebUnitでlog4jを使用するには、次の手順を実行しました。

  • Logback jarを削除
  • sfl4jのlod4jブリッジライブラリを追加-slf4j-log4j12-1.6.4.jar
  • log4j.propertiesを追加

おそらく、Logback jarを削除する必要はありませんが、slf4jがlog4jを使用するように強制するには、追加の手順が必要になります。


おかげで、OpenRdfを使用するときに同じ問題が発生しました。このスレッドの他のすべてのヒントは、logback jarを削除するまで効果がないように見えました。ログは静かになりました。
アマリリオン

3

次の2行は私の問題を完全に解決しました:

Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.ERROR);
Logger.getLogger("httpclient").setLevel(Level.ERROR);

これも私にとってはうまくいきましたが、私は必要としませんでした:Logger.getLogger( "org.apache.commons.httpclient")。setLevel(Level.ERROR);
Jamel Toms

3

以下の行をlog4jプロパティファイルに追加すると、httpログがシャットダウンされます。-log4j.logger.org.apache.http = OFF


単体テスト(メインの場合はメイン)でも@BeforeClass public static void BeforeClass() { PropertyConfigurator.configure("log4j.properties"); ...}、1行でlog4j.propertiesファイルを追加します。log4j.logger.org.apache.http= OFFはルート(srcフォルダーのすぐ上)にある必要があります
Sasha Bond

3

私も同じ問題を抱えていました。[main] DEBUG org.apache.http.wireテストの実行中、コンソール全体がいっぱいになりました。

私のために働いたソリューションを作成していたlogback-のtest.xml のsrc /テスト/リソース/ logback-のtest.xmlを同様にhttps://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/resources /logback-test.xml(REF - https://github.com/bonigarcia/webdrivermanager/issues/203

ロギング情報を表示するために、ロガー名= "io.github.bonigarcia"を私のパッケージ名に置き換えました

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

2

同様の問題の解決策を探しているときに私はこの投稿に導かれました。ティムの答えはとても役に立ちました。Matt Bakerのように、あまり設定を行わずにhttpClientログを遮断したいだけです。common-loggingの下でどのロギング実装が使用されているかわからなかったので、私の解決策は、log4j jarファイルをクラスパスにスローすることにより、log4jを使用してそれを強制することでした。log4j構成のデフォルト設定では、common-httpclientデバッグ出力が遮断されます。もちろん、より堅牢にするために、common-logging.propertiesおよびlog4j.propertiesファイルを作成して、ロギング構成をさらに定義することができます。


2

貼ってみる

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

commons-logging.properties


2

Apache 4.5.3の場合、すべてのapache httpクライアントのログ記録のレベルをWarnに移動するには、次のコマンドを使用します。

log4j.logger.org.apache=WARN

2

私にとっては、クラスのルートパスと以下の設定に「logback.xml」を追加することで機能します。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <logger name="org.apache" level="WARN"/>
    <logger name="httpclient" level="WARN"/>
</configuration>

1

jwebunit統合テストを実行するときにも同じ問題が発生しました。次のように、logbackを除外してslf4j-log4j12に追加することで修正しました。

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

1

これは私が一度理解するのに年齢を要しました、あなたはこれが必要です:

log4j.logger.httpclient.wire=ERROR

HttpClientはロガー名として「org.apache.commons.httpclient」ではなく「httpclient.wire」を使用していると思います。

卑劣な盗賊。


1

これでうまくいきました。

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.header", "error");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "error");
System.setProperty("log4j.logger.org.apache.http", "error");
System.setProperty("log4j.logger.org.apache.http.wire", "error");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "error");

0

私が見つけた最良の解決策は、コモンズロギングが完全に使用されないようにするために、mavenエンフォーサープラグインを使用することでした。次に、代わりにロギング用のslf4j依存関係を追加しました。以下をpom.xmlに追加してください

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

また、maven-enforcerプラグインを追加します

<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
パーサー

0

残りのテンプレートにHttpComponentsClientHttpRequestFactoryを設定した後、このような問題が発生しました。

OkHttpClientHttpRequestFactoryを設定すると、ゴミ箱のログに関する問題が解決するはずです。


0

これら2つの依存関係を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->デバッグ中のログバックとデフォルトの情報は表示されません。以下を使用できます。

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

以下のような:ログに記録する情報を定義するには 、最終的な結果 、このように。ログに記録したい情報のみが表示されます。


0

私は上記のすべての解決策を試しましたが、役に立ちませんでした。私に最も近くなったのは、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

と:

  • Log2J 2 2.11.2
  • HttpClient 4.5.7(elasticsearch 7.0.0 RESTクライアント)
  • プロパティファイルを使用した構成

追加できます:

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

上記の例の「httpclient」は、選択した論理名です。

(Java 11 OpenFXアプリケーションでテストされています。)


0

私の場合はxml構成を使用し、これを構成ファイルに追加します

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

0

「log4j.logger.org.apache.http.headers = ERROR」を試してください


0

私にとって、log4j propファイル内の以下の行は、HttpClientロギングから来たすべての混乱をクリーンアップしました。:)

log4j.logger.org.apache.http.headers=ERROR
log4j.logger.org.apache.http.wire=ERROR
log4j.logger.org.apache.http.impl.conn.PoolingHttpClientConnectionManager=ERROR
log4j.logger.org.apache.http.impl.conn.DefaultManagedHttpClientConnection=ERROR
log4j.logger.org.apache.http.conn.ssl.SSLConnectionSocketFactory=ERROR
log4j.logger.org.springframework.web.client.RestTemplate=ERROR
log4j.logger.org.apache.http.client.protocol.RequestAddCookies=ERROR
log4j.logger.org.apache.http.client.protocol.RequestAuthCache=ERROR
log4j.logger.org.apache.http.impl.execchain.MainClientExec=ERROR
log4j.logger.org.apache.http.impl.conn.DefaultHttpClientConnectionOperator=ERROR
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.