相关疑难解决方法(0)

使用Log4j2记录Spring

我正在尝试使用Log4j2将spring日志打印到文件和控制台中.我想这是我的Log4j2配置中的一个问题.我无法让它发挥作用.我在log4j2.xml文件中有这个配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration name="defaultConfiguration" status="warn" strict="true" monitorInterval="5">
    <properties>
        <property name="patternlayout">%d{ISO8601} [%t] %-5level %logger{36} - %msg%n%throwable{full}</property>
        <property name="filename">${env:MY_ROOT}/logs/mylog.log</property>
        <property name="filenamePattern">${env:MY_ROOT}/logs/mylog-%d{yyyy-dd-MM}-%i.log.gz</property>
    </properties>
    <appenders>
        <appender name="Console" type="Console" target="SYSTEM_OUT">
            <layout type="PatternLayout" pattern="${patternlayout}" />
        </appender>
        <appender name="File" type="RollingFile" fileName="${filename}" filePattern="${filenamePattern}" bufferedIO="true" immediateFlush="true"
        append="true">
            <layout type="PatternLayout" pattern="${patternlayout}" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="50 MB" />
            </Policies>
            <DefaultRolloverStrategy max="30" />
        </appender>
        <appender name="AsynchFile" type="asynch" blocking="true" bufferSize="128">
            <appender-ref ref="File" />
        </appender>
    </appenders>
    <loggers>
        <root level="info">
            <appender-ref ref="Console" />
            <appender-ref ref="AsynchFile" />
        </root>
        <logger name="org.springframework.beans"> …
Run Code Online (Sandbox Code Playgroud)

java logging spring log4j log4j2

19
推荐指数
2
解决办法
2万
查看次数

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>
Run Code Online (Sandbox Code Playgroud)

使用这个答案,我添加了以下内容,但它仍然没有显示 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>
Run Code Online (Sandbox Code Playgroud)

我可以确认log4j2.xmllog4j 正在使用它,因为日志遵循<pattern>我写的。

我错过了什么?请帮忙。

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

3
推荐指数
1
解决办法
1059
查看次数