在Apache CXF生成的客户端中启用日志记录

时间:2014-04-25 23:31:00

标签: apache logging cxf

我按照CXF网站上的说明启用了SOAP请求的记录,但是在我的日志中看不到任何记录。 我有log4j,所以我将-Dorg.apache.cxf.Logger = org.apache.cxf.common.logging.Log4jLogger添加到Tomcat jvm args,然后我创建了cxf.xml并放入了classpath。我还将logger添加到log4j配置中。 没有记录任何内容。 可能有什么问题?

cxf.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:cxf="http://cxf.apache.org/core"
  xsi:schemaLocation="
  http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<cxf:bus>
    <cxf:features>
        <cxf:logging/>
    </cxf:features>
</cxf:bus>
</beans>

1 个答案:

答案 0 :(得分:1)

我使用LoggingInInterceptor/LoggingOutInterceptor并且不确定您的总线配置,但您应该确保在log4j配置中添加了正确的记录器(具有正确的名称)。

在Apache CXF - 2.5 Migration Guido中,您将找到有用的信息

  

Logging拦截器现在使用特定于服务的日志进行记录   类别/记录器而不仅仅是   LoggingInInterceptor / LoggingOutInterceptor。记录器的名称   使用的是   org.apache.cxf.services.ServiceName.PortName.PortTypeName。这允许   用户配置特定的每个服务过滤器和格式化程序   他们的日志配置。

我写了一篇关于使用Apache CXF进行日志记录的blog post,它提供了在我的应用程序中启用请求/响应日志记录所需的所有信息。