我正在开发一个客户端项目来使用来自 abc.wsdl 的一些网络服务。所有相关的类都是使用 cxf 和 wsdltojava 插件生成的。类生成也被打包到 jar 中,我在我的客户端项目中将其用作依赖项。所以服务调用存在一些问题,我需要记录入站请求和响应。所以我尝试使用 CXF 拦截器启用日志记录。问题是日志没有附加到日志文件中。有人可以帮忙吗?
配置:
@Bean
public LoggingInInterceptor loggingInInterceptor() {
log.info("LoggingInInterceptor Testing");
LoggingInInterceptor loggingInInterceptor = new LoggingInInterceptor();
loggingInInterceptor.setPrettyLogging(true);
return loggingInInterceptor;
}
@Bean
public LoggingOutInterceptor loggingOutInterceptor() {
log.info("LoggingOutInterceptor Testing");
LoggingOutInterceptor loggingOutInterceptor = new LoggingOutInterceptor();
loggingOutInterceptor.setPrettyLogging(true);
return loggingOutInterceptor;
}
客户端类:
@PostConstruct
public void init () {
Bus bus = BusFactory.getDefaultBus();
bus.getInInterceptors().add(loggingInInterceptor);
bus.getInInterceptors().add(loggingOutInterceptor);
}
META-INF/org.apache.cxf.Logger :
org.apache.cxf.common.logging.Slf4jLogger
logback.xml:
<appender name="myLogger" class="ch.qos.logback.core.rolling.RollingFileAppender">
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${home.log.dir}/myLogger.log.%d</fileNamePattern>
<maxHistory>90</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d %-5level %logger{35} [%X{X-UID} %X{X-SID} %X{X-CID} %X{X-TID}] - %msg %n</pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="myLogger" />
<neverBlock>true</neverBlock>
</appender>
<logger name="org.apache.cxf.services" level="INFO">
<appender-ref ref="ASYNC" />
</logger>
<root>
<level value="WARN" />
<appender-ref ref="ASYNC" />
<appender-ref ref="consoleLogger" />
</root>
感谢任何帮助。提前致谢。