我正在使用apache HttpClient来执行POST请求:
CloseableHttpResponse response = HttpClients.createDefault().execute(request);
我想在日志中看到请求(以及其他apache客户端库日志语句),但我只能看到我的应用程序日志,没有来自任何依赖项的其他日志。
这是我的log4j2.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Lambda name="Lambda">
<PatternLayout>
<pattern>%d %X{AWSRequestId} %t %-5p [%X{userId}] %c{1}:%L - %m%n</pattern>
</PatternLayout>
</Lambda>
</Appenders>
<Loggers>
<Logger name="org.apache.http" level="debug">
<AppenderRef ref="Lambda"/>
</Logger>
<Root level="debug">
<AppenderRef ref="Lambda"/>
</Root>
</Loggers>
</Configuration>
使用this answer,我添加了以下内容,但它仍然没有显示apache日志。
<Logger name="org.apache.http.client" level="debug">
<AppenderRef ref="Lambda"/>
</Logger>
<Logger name="org.apache.http.impl.client" level="debug">
<AppenderRef ref="Lambda"/>
</Logger>
<Logger name="org.apache.http.impl.conn" level="debug">
<AppenderRef ref="Lambda"/>
</Logger>
我可以确认log4j正在使用这个log4j2.xml
,因为日志跟在我写的<pattern>
之后。
我错过了什么?请帮忙。
答案 0 :(得分:2)
添加Commons Logging Bridge依赖项修复了它: -
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.11.0</version>
</dependency>
See this了解详情。