Не удается вывести журнал с помощью apache httpComponent и log4j2

Я хочу вывести в консоль запрос, отправленный httpComponent из Apache. Я пробовал несколько конфигураций в своем log4j2.xml, но никогда не получал ничего, связанного с http в консоли. Я вижу только свое приложение журнала.

Вот мой файл 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>

I'm missing something?


person tetienne    schedule 21.03.2016    source источник


Ответы (1)


Ответ скопирован отсюда: Включить ведение журнала отладки для 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 использует старый API log4j 1.2: https://logging.apache.org/log4j/2.x/maven-artifacts.html

person Anton Krosnev    schedule 11.04.2016
comment
Многие спасибо. Не знаю почему, но я пропустил этот пост. Ваше решение работает нормально. - person tetienne; 12.04.2016