Enable debug logging for Log4J2 + Apache HttpClient
apache, apache-httpclient-4.x, java, log4j2, logging
Solution
I am assuming that httpcomponents use log4j-1.2 internally. Log4j2 provides an adapter that routes calls from your application that use the 1.2 API to the new 2.0 implementation.
To enable this, you only need to add log4j-core and log4j-1.2-api jars to your classpath. (Your current Maven dependencies only has log4j-api, which is the new 2.0 API.) See also http://logging.apache.org/log4j/2.x/faq.html .
Problem
im trying to activate the debug logging for my Apache HttpClient but cant make it work (getting no logging output at all which is HttpClient related). This is my log4j2 configuration im using at the moment: ``` <?xml version="1.0" encoding="UTF-8"?> <configuration status="OFF"> <appenders> <Console name="console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" /> </Console> <RollingFile name="RollingRandomAccessFile" fileName="logs/test.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout> <Pattern> %d %p %c{1.} [%t] %m%n </Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="10 MB" /> </Policies> <DefaultRolloverStrategy max="20" /> </RollingFile> <Async name="async"> <AppenderRef ref="RollingRandomAccessFile" /> </Async> </appenders> <loggers> <logger name="org.apache.http.wire" level="debug" /> <logger name="org.apache.http.client" level="debug" /> <logger name="org.apache.xerces.parsers.SAXParser" level="warn" /> <logger name="org.hibernate" level="warn" /> <root level="trace"> <appender-ref ref="console" /> <appender-ref ref="async" /> </root> </loggers> </configuration> ``` Changing the level from warn to debug for hibernate works perfectly for example. These libs im using: ``` <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>fluent-hc</artifactId> <version>4.2.6</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.2.6</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.2.5</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient-cache</artifactId> <version>4.2.6</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.2.6</version> </dependency> ``` Log4J2 ``` <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.0-beta9</version> </dependency> ``` Does anybody have a idea? I tried already different package names like ``` httpclient.wire httpclient.wire.header httpclient.wire.content ``` and some more but nothing seems to work...