java - log4j 2 不显示依赖日志
问题描述
我正在使用 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>
使用这个答案,我添加了以下内容,但它仍然没有显示 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>
我写的。
我错过了什么?请帮忙。
解决方案
添加 Commons Logging Bridge 依赖项修复了它:-
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.11.0</version>
</dependency>
推荐阅读
- python - 在 Python 中使用 Tesseract-OCR 从图像中获取数字
- c# - System.Text.Json 反序列化错误 System.MemoryExtensions 无法加载 System.Runtime.CompilerServices.Unsafe
- kotlin - 如何将一个数据类的值分配给另一个数据类
- spring-boot - Spring Elastic Search java.lang.UnsupportedOperationException 使用 mongo @DBRef
- python-3.x - 无法使用请求模块发送 OTP
- vba - 在 VBA ACCESS 中将数字序列转换为集合
- python - 函数的第二个参数总是被视为 1 的原因是什么?
- python - 将 CSRF 从烧瓶后端移动到 vue
- sql - 如果 1 个表中的日期在表 2 的日期的 24 小时内,则返回 True
- flutter - Flutter protobufs 处理静态和/或实时 GTFS 数据