但愿你不是听说过“数据库操作日志”这个词儿就来问吧。技术上,数据库的日志跟你理解的完全是两回事,那是数据库系统软件开发的事情。也就是说,如果你今天想再次发明一个SQL Server软件并且卖给微软,那么你就需要设计这个“数据库操作日志”了。

解决方案 »

  1.   

    假设你要的日志是指你的应用系统中对数据的增删改操作的动作(操作类型/时间/操作人/成功与否,甚至具体被操作的数据内容)等记录下来。
    最简单的业余的办法,你建张日志表,写一个公共方法用来记录日志,要求程序员所有对数据库的更新操作都要调用这个方法来记录日志。
    缺点很明显,调用点太多太杂,程序员随意性太大。那么你可以考虑建立一个对数据库访问的中间层/也可以在业务层中(具体看你记录log的维度是业务操作级别的还是数据操作级别的),理想情况下,你的所有增删改操作都派生自你提供的基类(或是你通过IOC等方式截取符合要求的操作函数,并自动记录),这样一来,就实现了自动记录log。
      

  2.   

    首先,你的日志不能是数据库级别的,因为数据库级别的日志文件会暴发性的增长。
    你的关注点应该是在程序调用数据库的部分想做部分的处理,这方面可以写自己的log类来处理。
      

  3.   

    用Log4.net。
    把对数据库的业务操作写进数据库,或者自己写日志操作类及方法。