In my last blog I gave a brief overview of different factors that cropped up during the initial thought phase on Logging Service. Since this service was one of the core components in SOA based foundation framework, lot of thought was put in before we finalized on some low-level requirements and features of Logging service. I am listing some core functional requirements that the service should satisfy.
- Service should have a straightforward, lightweight interface
- Service should use a standard, extensible schema to represent the information
- Service should have different levels of severity used to differentiate between logs
- Service should have timestamps associated with each log which will help in preserving the order of logged events.
- Service should represent a set of related logs using a single unique identifier which will be helpful in auditing/tracking
- Service should be able to discard log messages which are below the specified severity
- Service should have multiple destination support (Database, JMS, File, Email)
- Service should have option to set business rules to route logs to different destinations
- Service should be able to modify the data passed in from the client on the fly.
- Service should be able to route to a different destination in case of a failure of the defined destination.(failover)
- Service should be exposed as a web service so that it’s easily accessible to all the heterogeneous systems which form part of the SOA environment.
We did a freeze on requirements so that we could start with the design and development phase and see how things workout. I will write more on this and other components of the SOA foundation framework in my coming blogs.