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