我需要所有已登录的SOAP请求CommonLogFormat,以及持续时间(处理请求所花费的时间)。
CommonLogFormat
最好的方法是什么?看起来可以为Spring WebServices配置log4j,但是它将记录所有值吗?
将以下行添加到log4j.xml
<appender name="SPRINGLOGFILE" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="logs/spring.log" /> <param name="Append" value="true" /> <param name="MaxFileSize" value="1MB" /> <param name="MaxBackupIndex" value="5" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" /> </layout> </appender> <logger name="org.springframework.ws"> <priority value="DEBUG" /> <appender-ref ref="SPRINGLOGFILE" /> </logger>
编辑:我们实际上是在使用SLF4J,而不是Log4j。另外,看起来可以通过配置PayloadLoggingInterceptor来做到这一点
SLF4J
Log4j
但是我不确定日志消息会去哪里。我将该拦截器添加到了我们的拦截器中,但没有看到任何日志消息。
对于Spring Boot项目,application.properties在我下面添加了以下内容:
application.properties
logging.level.org.springframework.web=DEBUG logging.level.org.springframework.ws.client.MessageTracing.sent=DEBUG logging.level.org.springframework.ws.server.MessageTracing.sent=DEBUG logging.level.org.springframework.ws.client.MessageTracing.received=TRACE logging.level.org.springframework.ws.server.MessageTracing.received=TRACE