19.6. 记录消息内容

概述

您可以记录在服务和消费者之间发送的消息内容。例如,您可能要记录在服务和消费者之间发送的 SOAP 消息的内容。

配置消息内容日志

要记录在服务和消费者之间发送的信息,反之亦然,请完成以下步骤:

将日志记录功能添加到端点

添加日志记录功能,您的端点的配置功能,如 例 19.10 “在端点配置中添加日志” 所示。

例 19.10. 在端点配置中添加日志

<jaxws:endpoint ...>
  <jaxws:features>
    <bean class="org.apache.cxf.feature.LoggingFeature"/>
  </jaxws:features>
</jaxws:endpoint>

例 19.10 “在端点配置中添加日志” 中显示的 XML 示例启用 SOAP 消息的日志记录。

在消费者中添加日志记录功能

添加日志记录功能,为您的客户端配置添加功能,如 例 19.11 “在客户端配置中添加日志” 所示。

例 19.11. 在客户端配置中添加日志

<jaxws:client ...>
   <jaxws:features>
      <bean class="org.apache.cxf.feature.LoggingFeature"/>
    </jaxws:features>
</jaxws:client>

例 19.11 “在客户端配置中添加日志” 中显示的 XML 示例启用 SOAP 消息的日志记录。

将 logging 设置为 log INFO 级别信息

确保与您的服务关联的 logging.properties 文件配置为记录 INFO 级别的信息,如 例 19.12 “将日志级别设置为 INFO” 所示。

例 19.12. 将日志级别设置为 INFO

.level= INFO
java.util.logging.ConsoleHandler.level = INFO

记录 SOAP 信息

要查看 SOAP 消息的日志,请修改位于 InstallDir/samples/wsdl_first 目录中的 wsdl_first 示例应用程序,如下所示:

  1. 例 19.13 “日志 SOAP 消息的端点配置” 中显示的 jaxws:features 元素添加到 wsdl_first 示例目录中的 cxf.xml 配置文件:

    例 19.13. 日志 SOAP 消息的端点配置

    <jaxws:endpoint name="{http://apache.org/hello_world_soap_http}SoapPort"
                    createdFromAPI="true">
      <jaxws:properties>
        <entry key="schema-validation-enabled" value="true" />
      </jaxws:properties>
      <jaxws:features>
        <bean class="org.apache.cxf.feature.LoggingFeature"/>
      </jaxws:features>
    </jaxws:endpoint>
  2. 这个示例使用默认的 logging.properties 文件,该文件位于 InstallDir/etc 目录中。制作此文件的副本,并将其命名为 mylogging.properties
  3. mylogging.properties 文件中,通过编辑 .leveljava.util.logging.ConsoleHandler.level 配置属性将日志记录级别更改为 INFO

    .level= INFO
    java.util.logging.ConsoleHandler.level = INFO
  4. 使用 cxf.xml 文件和 mylogging.properties 文件中的新配置设置启动服务器,如下所示:

    平台命令 +

    Windows

    启动 java -Djava.util.logging.config.file=%CXF_HOME%\etc\mylogging.properties demo.hw.server.Server

    +

    UNIX

    java -Djava.util.logging.config.file=$CXF_HOME/etc/mylogging.properties demo.hw.server.Server &

    +

  5. 使用以下命令启动 hello world 客户端:

    平台命令 +

    Windows

    java -Djava.util.logging.config.file=%CXF_HOME%\etc\mylogging.properties demo.hw.client.Client .\wsdl\hello_world.wsdl

    +

    UNIX

    java -Djava.util.logging.config.file=$CXF_HOME/etc/mylogging.properties demo.hw.client.Client ./wsdl/hello_world.wsdl

    +

SOAP 信息被记录到控制台。