我有一个业务类,里面指定了org.apache.commons.logging.impl.SimpleLog作为日志记录的实现。代码如下。
public SimpleContactCreator(){ enableHeaderWireAndContextLogging(); } private void enableHeaderWireAndContextLogging(){ 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", "debug"); System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "debug"); }在运行时,这个SimpleLog的实现是如何被HttpClient检测出来的?
当我调用HttpClientBuilder.create().build()的时候,log检测就发生了:
查看方法findUserSpecifiedLogClassName:
从system property里取属性org.apache.commons.logging.Log的值:
这里就是我配置的SimpleLog。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
汪子熙 认证博客专家 前端框架 Node.js SAP JerryWang,2007年从电子科技大学计算机专业硕士毕业后加入SAP成都研究院工作至今。Jerry是SAP社区导师,SAP中国技术大使。2020年5月下旬,Jerry做了脑部肿瘤的开颅切除手术,对编程和人生又有了新的感悟。