【问题标题】:log4j 2 not showing dependency logslog4j 2 不显示依赖日志
【发布时间】: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 使用,因为日志遵循我写的 &lt;pattern&gt;

我错过了什么?请帮忙。

【问题讨论】:

  • 据我所知,您在 aws lambda 中使用它。您是否按照本教程 docs.aws.amazon.com/lambda/latest/dg/java-logging.html 进行操作?
  • @HristoAngelov 是的,我遵循了这一点,但目前我只是在我的 IDE 中进行测试。日志也应该显示在控制台中。

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


【解决方案1】:

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

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

See this了解更多详情。

【讨论】:

    猜你喜欢
    • 2018-12-07
    • 2013-12-15
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2018-03-28
    • 2020-02-20
    • 1970-01-01
    相关资源
    最近更新 更多