T-Sql错误处理和日志记录

时间:2010-06-19 09:07:10

标签: asp.net sql-server logging error-handling enterprise-library

我正在努力从体验中获得最大利益。

此外,我通常使用企业库日志记录块,我将错误和一部分统计信息记录到数据库中,因为它是集中处理错误的地方,如果数据库记录失败,通常会转到事件日志。

跟踪消息应该进入文件:

您认为我们应该选择哪种选择

1-仅当存在复杂算法或不稳定模块时,某些跟踪消息可以保留在代码中。

OR

2-我们不应该在代码中保留任何跟踪消息,一旦bug得到解决就清理它。

对于数据库。

我认为从SP和函数引发的错误应该记录到数据库中的另一个表中,而这正是AdventureWorksLT2008数据库所做的。

将数据库事件直接记录到Enterprise Library Log表而不将此错误提升到下一层是不是一个坏主意。我认为它更具可修复性,因为我可以在消息中添加更多自定义信息。当然,一些错误将无法处理,并将达到下一层。

任何想法或评论,你做的其他事情。你要澄清的东西。

由于

2 个答案:

答案 0 :(得分:0)

如果您的数据库出现性能问题并且SP /函数开始超时怎么办 - 将错误记录到数据库可能不起作用?

答案 1 :(得分:0)

您是在谈论捕获错误并直接在T-SQL中记录,而不是在执行RAISERROR以将其发送给调用者?

我认为对于某些类型的问题,这是一个可行的策略 - 例如,如果SP希望找到问题并默默地纠正它并且只是发出警告。

但它适用的那类问题可能不会非常频繁。

我会想到的事情是不寻常的情况,而不是INSERT,而是进行了意外的更新?或者数据已存在的位置,因此不会生成。或者在跳过现有表等的部署或构建脚本中