CommonsRequestLoggingFilter没有在我的春季网络反应应用程序中使用log4j2配置进行日志记录

时间:2018-05-03 09:52:23

标签: log4j2 reactive spring-web

如果CommonsRequestLoggingFilter可以在使用log4j2的spring web反应应用中使用,那么有人可以帮助我吗?我尝试过配置它,但它没有记录任何内容。如果错误,请纠正我的理解。它是否使用commons-logging而不能与log4j2一起使用?

1 个答案:

答案 0 :(得分:0)

原因很可能是您没有正确配置过滤器。顾名思义,它是一个过滤器。因此,您可能必须在web.xml中添加类似内容:

<filter>
    <filter-name>requestLoggingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CommonsRequestLoggingFilter</filter-class>
    <init-param>
        <param-name>includeClientInfo</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>includePayload</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>includeQueryString</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
    <filter-mapping>
        <filter-name>requestLoggingFilter</filter-name>
        <url-pattern>*.html</url-pattern>
    </filter-mapping>

您还可以通过WebInitializer和Java来完成此操作。

如果您不是通过Spring Boot运行应用程序,则将需要此功能。 Spring Boot会为您执行这种配置。这就是为什么大多数示例未显示配置的那部分。

除此之外,请不要忘记相应地调整日志记录。大多数示例都是使用Logback完成的,但对于现代的Log4j,它是:

 <Logger name="org.springframework.web.filter.CommonsRequestLoggingFilter" level="debug" additivity="false">
     <AppenderRef ref="STDOUT"/>
 </Logger>