如何让Spring WebServices记录所有SOAP请求?

2022-08-31 14:26:33

我需要记录所有 SOAP 请求(请参阅 http://en.wikipedia.org/wiki/Common_Log_Format),再加上持续时间(处理请求所需的时间)。CommonLogFormat

最好的方法是什么?看起来可以为Spring WebServices配置log4j,但它会记录我感兴趣的所有值吗?http://pijava.wordpress.com/2009/12/04/spring-webservice-soap-requestresponse-logging-with-log4j/

编辑:我们实际上是在使用,而不是。此外,看起来可以通过配置 PayloadLoggingInterceptor 来执行此操作:http://static.springsource.org/spring-ws/site/reference/html/server.html#server-endpoint-interceptorSLF4JLog4j

但我不确定日志消息将去哪里。我将该拦截器添加到我们的拦截器中,但我没有看到任何日志消息。


答案 1

对于Spring Boot项目,在下面添加为我工作:application.properties

logging.level.org.springframework.web=DEBUG
logging.level.org.springframework.ws.client.MessageTracing.sent=DEBUG
logging.level.org.springframework.ws.server.MessageTracing.sent=DEBUG
logging.level.org.springframework.ws.client.MessageTracing.received=TRACE
logging.level.org.springframework.ws.server.MessageTracing.received=TRACE

答案 2

您可以使用它来记录传入和传出 Web 服务调用的原始负载。我不确定如何记录Web服务通信花费的时间。

   <!-- Spring Web Service Payload Logging-->
   <logger name="org.springframework.ws.client.MessageTracing">
    <level value="TRACE"/> 
   </logger>
   <logger name="org.springframework.ws.server.MessageTracing">
    <level value="TRACE"/> 
   </logger>

有关其他详细信息,请参阅 http://static.springsource.org/spring-ws/site/reference/html/common.html#logging


推荐