代码之家  ›  专栏  ›  技术社区  ›  Kartik

log4j 2不显示依赖关系日志

  •  2
  • Kartik  · 技术社区  · 6 年前

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

    我错过了什么?请帮忙。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Kartik    6 年前

    添加commons日志桥依赖项修复了它:

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

    See this 更多细节。