Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 高效地记录大量操作_C#_.net_Sql_Logging - Fatal编程技术网

C# 高效地记录大量操作

C# 高效地记录大量操作,c#,.net,sql,logging,C#,.net,Sql,Logging,我们希望更深入地了解工作中的日志记录,并计划记录系统中发生的几乎所有重要事件,例如对数据库表执行的审计操作以及系统及其服务中发生的其他业务操作,这些操作可能每两个小时生成数千条记录 当然,日志系统应该易于使用和配置,并且能够实时查询 我的问题是: 1)SQL Server本身是否可以处理“数据库审计操作”部分?它有自己的日志记录机制吗 2)我们如何以及在何处记录其他业务运营 我想到的第一个框架是log4net,但我仍然不确定在哪里记录它们,因为我们不想一直过度填充数据库。使用一个完全不同的数据库

我们希望更深入地了解工作中的日志记录,并计划记录系统中发生的几乎所有重要事件,例如对数据库表执行的审计操作以及系统及其服务中发生的其他业务操作,这些操作可能每两个小时生成数千条记录

当然,日志系统应该易于使用和配置,并且能够实时查询

我的问题是:

1)SQL Server本身是否可以处理“数据库审计操作”部分?它有自己的日志记录机制吗

2)我们如何以及在何处记录其他业务运营


我想到的第一个框架是log4net,但我仍然不确定在哪里记录它们,因为我们不想一直过度填充数据库。使用一个完全不同的数据库只是为了记录日志,还是周期性地从数据库中生成文本文件并压缩它们,等等,这是一个好方法?大型系统是如何处理这种复杂的日志记录过程的?

Log4Net有一大堆附加程序,您可以在app.config中配置和更改,而无需重建任何内容,您可以有数据库附加程序、SMTPappender、滚动文件附加程序和许多其他程序,没有特殊的编码,我让它工作,并发送电子邮件给我使用SmtpAppender的一些小应用程序。如果随后决定更改appender,则只需触摸配置


SQL server支持审核和更改跟踪,这些功能应该具备您所需的全部功能,甚至更多功能。请注意,一般来说,如果启用了太多功能,则可能会出现性能问题。

您需要Microsoft Enterprise Library


您可以使用,它易于使用和配置

我也使用log4net及其Smtp、AdoNet和FileAppender,但不确定它是否能满足我的需要。例如,除了log4net的标准日志消息,比如logDate和logginglever,我还需要另外5到6个东西(比如userId)与log4net提供的信息一起记录。这很简单,还是创建我们自己的日志系统更好?您可以使用Log4Net完成所有事情,您可以定义自定义属性,您将从代码中传递这些属性,并在PatternLayout中使用它们。请不要重新发明轮子,因为它永远不会像Log4Net那样高效、可靠、经过测试和支持,没有意义。