java - log4j 2 不显示依赖日志

标签 java log4j log4j2 apache-httpclient-4.x apache-httpcomponents

我正在使用 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>我写的。

我错过了什么?请帮忙。

最佳答案

添加 Commons Logging Bridge 依赖项修复了它:-

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-jcl</artifactId>
        <version>2.11.0</version>
    </dependency>

See this了解更多详情。

关于java - log4j 2 不显示依赖日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50713968/

相关文章:

Java 集合排序 : DEBUG/VERBOSE the RootCause of "Comparison method violates its general contract:" errors

java - 在请求负载中设置字符串列表

Java 调试接口(interface)、Lambda 和行号

c++ - 有没有办法使用 libxml2 自动检测根标签中写入的命名空间?

java - Log4J2 - 在运行时分配文件附加程序文件名

java - log4j 2 向控制台附加程序添加多种颜色

JavaFX实时带时间轴的LineChart

spring-mvc - 如何在 Spring 中配置 Log4j 进行 MyBatis SQL 查询?

java - log4j 不写入文件,而是写入控制台

java - 配置多个 log4j2 记录器