Dar*_*rov 11 .net sql-server logging
我正在寻找实现TraceListener的最佳实践,该TraceListener将从ASP.NET应用程序在SQL Server中写入日志.
在实施这样的课程时应该考虑哪些因素以避免降低性能?
存储过程是否会比普通的ADO.NET INSERT语句更快?
我真的很喜欢将日志写入临时内存缓冲区并在稍后从后台线程将其刷新到数据库的想法,但是哪种数据结构最适合这种情况?Queue <T>似乎是一个很好的候选者,但如果没有一些同步机制我就无法添加元素.
我在互联网上发现了一篇文章,其中显示了一个自定义TraceListener的示例,该示例写入SQL Server,但在将其放入生产代码之前,我希望得到更多反馈.
log4net会将跟踪转储到带有一大堆刷新选项的sql db等等.检查它:http://logging.apache.org/log4net/release/features.html
log4net已被证实.如果你能避免"重新编写方向盘"那么它是对的吗?
存储过程不会比参数化 SQL 更快。在我的应用程序中,我更喜欢存储过程而不是硬编码 SQL,但如果您要生成插入语句,那就更好了。
如果您同意可能会丢失数据,那么使用缓冲区是一个好主意。如果您想将客户端与插入分离并且希望它持久,您可以使用 MSMQ。然后,您可以编写一个 Windows 服务来处理队列,并且它将与应用程序完全解耦。如果您有服务器场,它还可以聚合来自多个服务器的日志。
| 归档时间: |
|
| 查看次数: |
2768 次 |
| 最近记录: |