Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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_Asp.net_Logging - Fatal编程技术网

C# 我应该在哪里存储错误日志?

C# 我应该在哪里存储错误日志?,c#,.net,asp.net,logging,C#,.net,Asp.net,Logging,我正在构建一个C#/Asp.Net(FW2.0)web应用程序,我想知道应该将错误日志条目存储在哪里 我可以把它写在服务器上的一个文件上,但这对我来说并不合适。这与数据库的概念是一致的 另一个OBIVOU答案是关于数据库的,但是如果我与数据库没有任何连接,会发生什么呢。如果客户端与数据库发生连接错误,我该怎么办(因为服务器和数据库显然不在同一台机器上) 谢谢你的建议 比你 编辑:我在这里谈论的是基本的错误日志记录,请不要提及诸如log4net之类的大型框架。具有适当事件源的系统事件日志(日志记录

我正在构建一个C#/Asp.Net(FW2.0)web应用程序,我想知道应该将错误日志条目存储在哪里

我可以把它写在服务器上的一个文件上,但这对我来说并不合适。这与数据库的概念是一致的

另一个OBIVOU答案是关于数据库的,但是如果我与数据库没有任何连接,会发生什么呢。如果客户端与数据库发生连接错误,我该怎么办(因为服务器和数据库显然不在同一台机器上)

谢谢你的建议

比你


编辑:我在这里谈论的是基本的错误日志记录,请不要提及诸如log4net之类的大型框架。

具有适当事件源的系统事件日志(日志记录通道)

-系统事件查看器

-您可以将错误缓存到本地和轻型数据库文件(可以是SqLite/Sql Compact),然后在连接可用时,将其发送到服务器

我想您确实有三种选择:

  • 使用一个小型数据库在本地计算机上存储所有错误日志,使用一些轻量级的东西,如SQLlite或SQLServer Compact
  • 将其保存到一个平面文件(xml或您拥有的其他文件)中,您可以在其中查看它
  • 直接发送到事件日志。(我可能会这样做)

  • 与数据库日志相比,log4net或nlog不是“大框架”。保持它的简单性,这两种方法可以提供您所需要的东西,只需很少的启动时间。

    将其存储在事件日志中;它毕竟是为这个目的而设计的!无论人们对应用程序了解多少,它都是大多数人查找错误、消息和警告的地方

    企业库提供了一个可以使用的日志框架。这允许您根据配置文件更改事件记录的方式/位置,这样您就不必决定事件记录的位置


    除此之外,如果使用异常处理块,您还可以将错误记录到事件日志中,只需花费很少的精力即可将错误记录到数据库中,并将xml作为备用项,asp.net帐户将需要PERM将错误记录到eventviewer,这在web服务器上可能不是一个好主意,除非绝对必要。

    具有回退机制是一个非常有效的方案。将日志记录到windows事件日志通常是不实际的,因为它不像关系数据库那样容易分析日志。但是,允许在数据库发生故障时将事件记录到事件日志中并不是一个奢侈的选择

    这个场景是我构建日志框架的原因之一(我不会按照您的要求引用它)。它支持名为“fallbackProvider”的概念,允许在主记录器出现故障时将事件记录到备用记录器。当您编写自己的日志机制时,您可以接受这样一个概念


    祝你好运。

    < P>如果你愿意考虑一个简单的商业产品,请看一看。它在本地存储日志,然后在连接可用时将其上载到web服务。然后在嵌入式数据库中为日志编制索引,通过分析工具,您可以根据需要查看错误和其他信息


    我知道你是个学生,弗兰克。直接给我发电子邮件,讨论我们向您提供免费许可证的可能性。

    我们内部的工作是使用系统事件日志。这样,当我们启动时,我们可以推出SCOM并实时监控问题。您能给我更多关于您的框架的信息吗。存储在事件日志中的错误很难检索,正如您所说,这不是一个奢侈的选择。它被称为CuttingEdge.Logging,托管在CodePlex:。它包含用于写入MS SQL数据库的记录器和windows事件日志。在构建ASP.NET应用程序时,请查看以下配置示例:。以下是一些可能感兴趣的链接:我上周末刚刚完成的全新入门视频:描述我们几天前刚刚发布的新版本的博客文章: