我正在构建一个C#/ Asp.Net(FW 2.0)Web应用程序,我想知道应该在哪里存储我的错误日志条目。
我可以将它写在服务器上的文件中,但这对我来说似乎不对。这与数据库的想法不一致。
另一个重要的答案是数据库,但如果我没有与数据库建立任何连接,会发生什么。如果客户端收到数据库的连接错误我该怎么办(因为服务器和数据库显然不在同一台机器上)?
您的建议表示赞赏。
比你
编辑:我在这里谈论基本的错误记录,请不要像log4net那样引用大框架。
答案 0 :(得分:6)
带有相应事件源(日志记录通道)的系统事件日志
答案 1 :(得分:3)
与记录到数据库相比,log4net或nlog不是“大框架”。保持简单,这两个提供了你所需要的,只有很少的加速期。
答案 2 :(得分:2)
拥有回退机制是一个非常有效的方案。记录到Windows事件日志通常是不切实际的,因为与关系数据库一样,分析日志并不容易。但是,当数据库发生故障时允许将事件记录到事件日志中并不是IMO的奢侈选择。
这种情况是我构建日志框架的原因之一(我不会按照您的要求引用它)。它支持一个名为'fallbackProvider'的概念,允许在主记录器失败的情况下将事件记录到备用记录器。当您编写自己的日志记录机制时,您可以接受这样的概念。
祝你好运。答案 3 :(得分:1)
将其存储在事件日志中;它毕竟是为此目的而设计的!无论他们对应用程序的了解程度如何,大多数人都会寻找错误,消息和警告。
企业库提供了一个可以使用Enterprise Library的日志记录框架。这允许您根据配置文件更改事件的记录方式/位置,这样您就不必决定记录事件的位置。
除此之外,如果您使用异常处理块,您还可以轻松地将错误记录到事件日志中
答案 4 :(得分:0)
我猜你真的有三种选择:
答案 5 :(得分:0)
登录数据库并将xml作为后备,asp.net帐户将需要perms将错误记录到eventviewer,这可能不是Web服务器上的好主意,除非它绝对是不成功的。
答案 6 :(得分:0)
如果您愿意考虑使用简单的商品,请查看Gibraltar。它在本地存储日志,然后在连接可用时将其上载到Web服务。然后在嵌入式数据库中对日志进行索引,并使用分析工具查看所需的任何详细级别的错误和其他信息。
我知道你是学生,弗兰克。直接给我发电子邮件,讨论我们为您提供免费许可的可能性。
答案 7 :(得分:-1)
- 系统事件查看器
- 您可以将错误缓存到本地&轻量级db文件(可以是SqLite / Sql Compact),然后当连接可用时,将其发送到服务器