title: Business Audit log - recommended library or approach?
body: <p>do you know any good Java library for audit logging? Or at least good book/article to help choose good approach to build audit log for an application?</p>
  
  <p><strong>Library requirements:</strong><br>
  - define common audit metadata (userId, time, IP, ...)<br>
  - define audit message types (transaction sent, message received, ...)<br>
  - lock/sign individual audit messages (for non-repudiation)<br>
  - search audit log based on metadata<br>
  - etc.</p>
  
  <p><em>Edit:</em><br>
  I'm not looking for automated solution, I'm perfectly happy with calling something like:</p>
  
  <pre><code>AuditEvent event = new TransactionSentEvent(userId, account, amount, ...)
  AuditLog.audit(auditEvent);
  </code></pre>
  
  <p>The point is to have the infrastructure behind it - safe storage to database, non-reputability etc.</p>