Spring-如何使SoapEnvelopeLoggingInterceptor适应于将标准日志输出到日志文件的形式更正式地记录数据
问题内容:
我正在尝试对Spring Web服务请求/响应进行正式审核。
我在Spring配置中就位了:
<ws:interceptors>
<bean class="org.springframework.ws.soap.server.endpoint.interceptor.SoapEnvelopeLoggingInterceptor"/>
</ws:interceptors>
很好,并将请求和响应记录到我的JBoss日志文件中。不过,我想要的是能够适应这一点并更加干净地记录这些请求/响应,以及如何获取数据,以便可以在数据库中写入审核记录。
我如何才能在上面进行调整,以便可以映射到我的一个bean或类似的bean并获取请求和响应中的数据?
问题答案:
您应该只能够创建的子类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 */
}
}