Database querues (after) should be selected if you have query restrictions defined. Otherwise, just the 'before' option is sufficient. The 'retrieval' messages should also be logged.
And yes, there is a performance impact -- it should be minimal in most systems. If you do see a performance impact, tune the database -- there's no reason you shouldn't be able to handle hundreds of log messages per second.
-JD.