Generic Tracing component
The goal is to build a generic tracing and logging component with the following features
Features
- Asnychronous logging
The logging should be decoupled from the normal message flow so performance is not degraded too much - Persistent buffering
To achieve decoupling for larger messages it should be possible to store larger messages on disk before they are send to the real tracing destination - SPI for further processing of the message
There should be a well defined interface for the further processing of the traced messages so it is for example possible to attach a remote logging server or a central monitoring system - Support for correlation of request and responses
The tracing component should support correlation ids for exchanges so request and response messages can later be combined again - Support for flow id
The tracing should support a flow id that is created at a client side of the execution flow and that also allows tracking of the execution over intermediaries or when a service calls other services
Design