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