【发布时间】:2017-11-22 16:51:23
【问题描述】:
我正在尝试创建自定义 LoggingInInterceptor ,但代码根本没有进入自定义部分。我的示例 SOP @@@@@@@@handleMessage 甚至没有打印出来。我正在使用 Apache CFX 和 SpringBoot 应用程序来使用 SOAP services.所以尝试自定义记录器的请求和响应。请帮助找到问题。
自定义拦截器:
@Component
public class CustomLoggingInterceptor extends LoggingInInterceptor{
@Override
public void handleMessage(Message message) throws Fault {
System.out.println("@@@@@@@@handleMessage"+this.getClass().getName());
Logger logger = getCustomMessageLogger(message);
if (logger != null && (writer != null || logger.isLoggable(Level.INFO))) {
logging(logger, message);
}
}
Logger getCustomMessageLogger(Message message) {
if (isLoggingDisabledNow(message)) {
return null;
}
Endpoint ep = message.getExchange().getEndpoint();
if (ep == null || ep.getEndpointInfo() == null) {
return getLogger();
}
EndpointInfo endpoint = ep.getEndpointInfo();
if (endpoint.getService() == null) {
return getLogger();
}
Logger logger = endpoint.getProperty("MessageLogger", Logger.class);
if (logger == null) {
String logName = "org.apache.cxf.services." ;
logger = LogUtils.getL7dLogger(this.getClass(), null, logName);
endpoint.setProperty("MessageLogger", logger);
}
return logger;
}
}
服务电话:-
UserService service = getUserServiceForEndpoint("URL");
Client client = ClientProxy.getClient(service);
Endpoint endpoint = client.getEndpoint();
endpoint.getOutInterceptors().add(wssOutInterceptor);
endpoint.getOutInterceptors().add(loggingOutInterceptor);
endpoint.getOutFaultInterceptors().add(loggingOutInterceptor);
endpoint.getInInterceptors().add(customLoggingInterceptor );
endpoint.getInFaultInterceptors().add(customLoggingInterceptor);
【问题讨论】:
标签: java apache logging spring-boot