2016-03-21 225 views
0

我想在控制檯中輸出httpComponent從Apache發送的請求。我在我的log4j2.xml中嘗試了幾個配置,但從來沒有在控制檯中獲得與http相關的內容。我只看到我的日誌應用程序。無法使用apache httpComponent和log4j2輸出日誌

這裏我log4j2.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="WARN"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <!--PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/--> 
      <PatternLayout pattern="* %msg%n"/> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <Root level="debug"> 
      <AppenderRef ref="Console"/> 
     </Root> 

     <logger name="org.apache.http" level="debug"/> 
     <logger name="org.apache.wire" level="debug"/> 
    </Loggers> 
</Configuration> 

這裏我小的代碼

public ApiResponse<DealDiscovery> execute() throws IOException { 
     HttpClient client = HttpClientBuilder.create().build(); 
     URI uri = null; 
     try { 
      uri = new URIBuilder(BASE_URL).addParameter(TOKEN, token).build(); 
     } catch (URISyntaxException e) { 
      //Should never happened 
     } 
     HttpGet http = new HttpGet(uri); 
     HttpResponse httpResponse = client.execute(http); 
     String response = EntityUtils.toString(httpResponse.getEntity()); 
     return parseResponse(response); 
    } 

這裏我的依賴關係在pom.xml

<dependency> 
     <groupId>com.saucelabs</groupId> 
     <artifactId>sauce_junit</artifactId> 
     <version>2.1.20</version> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>${selenium.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
     <version>2.6.2</version> 
    </dependency> 

    <dependency> 
     <groupId>org.skyscreamer</groupId> 
     <artifactId>jsonassert</artifactId> 
     <version>1.2.3</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-junit</artifactId> 
     <version>2.0.0.0</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>19.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.5</version> 
    </dependency> 

    <dependency> 
     <groupId>org.jsoup</groupId> 
     <artifactId>jsoup</artifactId> 
     <version>1.8.3</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi</artifactId> 
     <version>3.13</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.13</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.5.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpcore</artifactId> 
     <version>4.4.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient-cache</artifactId> 
     <version>4.5.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpmime</artifactId> 
     <version>4.5.2</version> 
    </dependency> 

</dependencies> 

我遺漏了什麼?

回答

4

答案就是從這裏複製:Enable debug logging for Log4J2 + Apache HttpClient 您需要添加以下依賴在pom.xml中

<dependencies> 
    <dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-1.2-api</artifactId> 
    <version>2.5</version> 
    </dependency> 
</dependencies> 

這樣做的原因HttpClient的使用log4j的老1.2 API:https://logging.apache.org/log4j/2.x/maven-artifacts.html

+0

許多THX。我不知道爲什麼,但我錯過了這篇文章。你的解決方案工作正常 – tetienne