The eAudit4j library provides a simple and pluggable solution for auditing in Java.
This library uses the concept of "audit streams", with a stream being comprised
of one or more "audit processors". An application can configure an unlimited
number of audit streams, each with a different configuration. When an application
wants to audit an event, it will create and populate an "Event" instance, and
then submit the event to the audit stream for processing ...