基本上需要4件事才能从旧的cxf日志记录更新到新的cxf日志记录(rt/features/logging)。
首先,设置日志记录功能:
final JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setFeatures(Collections.singletonList(new CustomLoggingFeature()));
您不再需要拦截器(如果您使用了拦截器,请将其删除):
factory.getInInterceptors().add(new CustomMaskedLoggingInInterceptor());
factory.getOutInterceptors().add(new CustomMaskedLoggingOutInterceptor());
其次,创建您的日志记录功能:
public class CustomLoggingFeature extends org.apache.cxf.ext.logging.LoggingFeature {
public CustomLoggingFeature() {
super();
this.setSender(new CustomEventLogSender());
}
}
第三,创建你的 EventLogSender:
public class CustomEventLogSender extends Slf4jVerboseEventSender {
@Override
protected String getLogMessage(LogEvent event) {
String logMessage = super.getLogMessage(event);
return CustomMasker.mask(logMessage);
}
}
第四,创建一个 CustomMasker 类,在该类中,您有自己的字符串操作逻辑来屏蔽所需的信息。
让我知道它是否有效!