Spring - 我如何调整SoapEnvelopeLoggingInterceptor以比标准输出更正式地记录数据到日志文件

时间:2013-01-07 14:28:44

标签: java web-services spring spring-mvc interceptor

我正在尝试对我的Spring Web服务请求/响应执行正式审核。

我在Spring配置中有这个:

<ws:interceptors>   
   <bean class="org.springframework.ws.soap.server.endpoint.interceptor.SoapEnvelopeLoggingInterceptor"/>
</ws:interceptors>

这很好,并将请求和响应记录到我的JBoss日志文件中。我想要的是能够适应这一点并将这些请求/响应更清晰地记录下来,如何获取数据,这样我就可以写入数据库中的审计记录。

我如何调整上述内容以便我可以映射到我的一个bean或类似的东西,并获取请求和响应中的数据?

1 个答案:

答案 0 :(得分:2)

您应该只能创建SoapEnvelopeLoggingInterceptor的子类并覆盖 logMessage(String)做你想做的事。例如:

<ws:interceptors>   
   <bean class="org.mypackage.SysErrLoggingInterceptor"/>
</ws:interceptors>


package org.mypackage;

public class SysErrLoggingInterceptor extends SoapEnvelopeLoggingInterceptor {
    @Override
        protected void logMessage(String message) {
        System.err.println(message); 
        /* Example, here you could be logging to DB or whatever you want */
    }

}