depends on the load, if the data and changes is very much critical performance, the only 3rd option CDC - can run without load on the main database (on a dedicated server), but requires MS-SQL Enterprise Edition
additionally, view the project AutoAudit on codeplex - maybe for you.
the difference between 1.3 and 2, that 1и3 you will see the story on the physical level, DB (database table), in the 2nd at the logical level applied C# Objects. However, the log will have either on the client or on the server applications can be critical to memory to the number of processed records (if the transaction more 10tysyach changes). Again, if you have in the database is a stored procedure, then in the 2nd option, you miss out the audit of their changes