启用调试日志记录Log4J2 + Apache的HttpClient的 [英] Enable debug logging for Log4J2 + Apache HttpClient
问题描述
我尝试激活调试日志记录我的Apache HttpClient的,但不能让它工作(没有得到日志输出可言这是HttpClient的关系)。
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).
这是目前使用的我log4j2配置IM:
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.
这些库使用即时通讯:
<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
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...
推荐答案
我假设httpcomponents使用log4j的-1.2的内部。
Log4j2提供了路线从您的应用程序使用API 1.2到新的2.0实现调用的适配器。
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.
要实现这一点,你只需要log4j的核心和log4j的-1.2-API jar添加到类路径中。 (您当前的Maven依赖仅有的log4j的API,这是新的2.0 API)。
另请参见 http://logging.apache.org/log4j/2.x/faq html的。
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 .
这篇关于启用调试日志记录Log4J2 + Apache的HttpClient的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!