我正在编写一些日志/审计代码,这些代码将在生产环境中运行(不仅仅是在错误抛出或开发期间)。阅读完Coding Horror关于死锁和日志记录的经验后,我决定寻求建议。(Jeff的“不记录日志”的解决方案对我不起作用,这是法律强制要求的安全审计)
是否存在适当的隔离级别来最小化争用和死锁?我可以添加哪些查询提示到插入语句或存储过程中吗?
我非常关心事务完整性,除了审计表以外的所有内容。想法是如果有一些条目失败,那么所记录的内容会非常多,这并不是一个问题。如果记录日志停止了其他某些交易– 那就糟糕了。
我可以记录到数据库或文件中,虽然记录到文件中不太可取,因为我需要能够以某种方式显示结果。记录到文件中会(几乎)保证日志记录不会干扰其他代码。