Wednesday, February 25, 2009

Logging all messages passing through Axis

Recently I came across a client who required that all web service calls should be easily logged to a specific path, and grouped by date, and possibly other information. The SOAP stack used was Apache Axis (not Axis2), and thus I wrote a handler that does this..

The source code is in Google [http://code.google.com/p/adroitlogic-utils/] and released under the Apache License v2, so that anyone could use it and modify it as required, and possibly enhance it and send back patches too. The binary for Axis 1.x can be downloaded from [http://adroitlogic-utils.googlecode.com/files/axis-logger-0.1-beta-1.zip]

It can be managed via JMX, and left disabled by default if required, to help troubleshooting problems as they arise. For more details see [http://code.google.com/p/adroitlogic-utils/wiki/AxisLogger] for configuration and usage

Basically, once installed and enabled, this handler would intercept your Axis client side web service calls and save them into a pre-configured directory ordered by date, and other information. This would help comply with requirements for many industries where each request made to external services and the responses received should be logged into files for archival - e.g. airline industry, credit card/payment transactions etc

I hope to include the Axis2 version of this same handler shortly..

1 comments:

Stefan said...

I would be pleased if this handler could be made available for Axis2 :o)