My fellow developers and I are at a crossroads in how to go about continuing our auditing of database changes.

Most of our applications log changes via `INSERT`, `UPDATE`, and `DELETE` triggers.

A few of our newer applications audit at the ORM layer; specifically using [Hibernate Envers](http://docs.jboss.org/hibernate/envers/3.6/reference/en-US/html_single/).

While ORM layer auditing provides a much cleaner interface and is much more maintainable, it will not capture any manual database changes that are made. ORM layer auditing also means that our libraries will currently require a dependency on our ORM implementation unless, specifically in our case for example, JPA plans on providing something in the near future.

Is there a common paradigm that addresses this?