簡體   English   中英

動態配置Apache Http客戶端

[英]Dynamically configuring Apache Http client

我正在創建一個使用http://hc.apache.org/httpcomponents-client-4.2.x/index.html向外部服務發出HTTP請求的模塊。 該模塊將由應用程序使用。 應用程序通過基於XML的配置文件來配置模塊的不同方面。 我想在該XML文件中指定用於HTTP通信的日志記錄級別。 該模塊將讀取該配置文件,並使用該日志記錄級別配置apache HTTP客戶端。 我找不到任何方法可以通過編程方式配置具有應用所需的正確日志記錄級別的apache http庫。 有什么辦法嗎?

httpclient使用公用日志記錄,如下所述: http : //hc.apache.org/httpcomponents-client-4.2.x/logging.html

因此,它將日志記錄委托給您的日志記錄框架。 要配置http請求的日志記錄,您需要使用日志記錄框架的API。 例如,如果使用JDK日志記錄,則應執行以下操作:

java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(Level.ALL)

每個日志記錄框架都有其自己的API。

要使用commons-logging打包的內置SimpleLog實現,您可以執行以下操作:

    System.setProperty("org.apache.commons.logging.Log","org.apache.commons.logging.impl.SimpleLog"); 
    System.setProperty("org.apache.commons.logging.simplelog.defaultlog","trace"); 

    DefaultHttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet("http://www.google.com");
    client.execute(request);

運行此代碼應將大量日志輸出打印到控制台(syserr)。

請注意,對於生產日志記錄框架而言,simplelog並不是真正的好選擇。 您應該真正使用log4j之類的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM