What you are doing is correct: factor the logging functionality into its own project.
As far as logging using DAO the answer would be to place DAO into its own project.
But at some point you have to stop or else you end up with many small projects.
An alternative would be to copy some minimal DAO code that is focused on logging to the database (I know, some will frown up this). Anyhow, it is probably just a few lines of code and solves the circular reference problem.
Jack Poorte, Mar 08, 2014