【发布时间】:2018-06-06 06:53:39
【问题描述】:
我正在使用 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>
我可以确认这个log4j2.xml 正在被 log4j 使用,因为日志遵循我写的 <pattern>。
我错过了什么?请帮忙。
【问题讨论】:
-
据我所知,您在 aws lambda 中使用它。您是否按照本教程 docs.aws.amazon.com/lambda/latest/dg/java-logging.html 进行操作?
-
@HristoAngelov 是的,我遵循了这一点,但目前我只是在我的 IDE 中进行测试。日志也应该显示在控制台中。
标签: java log4j log4j2 apache-httpclient-4.x apache-httpcomponents