You can log the content of the messages that are sent between a service and a consumer. For example, you might want to log the contents of SOAP messages that are being sent between a service and a consumer.
To log the messages that are sent between a service and a consumer, and vice versa, complete the following steps:
Add the logging feature your endpoint's configuration as shown in Example 7.11.
Example 7.11. Adding Logging to Endpoint Configuration
<jaxws:endpoint ...> <jaxws:features> <bean class="org.apache.cxf.feature.LoggingFeature"/> </jaxws:features> </jaxws:endpoint>
The example XML shown in Example 7.11 enables the logging of SOAP messages.
Add the logging feature your client's configuration as shown in Example 7.12.
Example 7.12. Adding Logging to Client Configuration
<jaxws:client ...> <jaxws:features> <bean class="org.apache.cxf.feature.LoggingFeature"/> </jaxws:features> </jaxws:client>
The example XML shown in Example 7.12 enables the logging of SOAP messages.
Ensure that the logging.properties
file associated with your service is configured to log INFO
level messages,
as shown in Example 7.13.
Example 7.13. Setting the Logging Level to INFO
.level= INFO java.util.logging.ConsoleHandler.level = INFO
To see the logging of SOAP messages modify the wsdl_first sample application located in the
directory, as follows:InstallDir
/samples/wsdl_first
Add the jaxws:features
element shown in Example 7.14 to the cxf.xml
configuration file located in the wsdl_first sample's directory:
Example 7.14. Endpoint Configuration for Logging SOAP Messages
<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>
The sample uses the default logging.properties
file, which is located in the
directory. Make a copy of this file and name it
InstallDir
/etcmylogging.properties
.
In the mylogging.properties
file, change the logging levels to INFO
by editing the .level
and
the java.util.logging.ConsoleHandler.level
configuration properties as follows:
.level= INFO java.util.logging.ConsoleHandler.level = INFO
Start the server using the new configuration settings in both the cxf.xml
file and the
mylogging.properties
file as follows:
Platform | Command |
---|---|
Windows | start 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 & |
Start the hello world client using the following command:
Platform | Command |
---|---|
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 |
The SOAP messages are logged to the console.