可靠(耐用)的分布式日志引擎

时间:2009-12-05 09:22:02

标签: .net logging distributed reliability unreliable-connection

尝试为分布式系统找到商业日志框架。此框架必须允许远程服务器上的.NET应用程序记录消息,然后可以在中央位置收集消息。如果可能,中央位置应将消息存储在SQL Server数据库中。

要求:

  1. 能够启动远程服务器上的消息记录,即使网络中断阻止立即将消息分派到中央位置。
  2. 将消息分发到中央位置应由运行.NET应用程序的进程处理,以防止ASP.NET应用程序或Web服务的性能下降。
  3. 确保最终将消息传递到中心位置。例如如果远程服务器在网络没有响应的时间段内重新启动,则在恢复远程服务器和正常网络状况时仍应传送已记录的消息。

3 个答案:

答案 0 :(得分:1)

可能一个非常简单的解决方案可能是继续编写本地日志并创建一个单独的进程以将日志重新发布到服务器。您可以使用多个选项进行pubhish日志记录,包括发布订阅消息总线,如MassTransit或msmq。

使用不同的解决方案,例如编写特定的log4net适配器绝对是一种选择,但它可能会导致耦合/依赖问题,因此采用必须考虑实际的部署环境。

答案 1 :(得分:1)

我认为您应该可以使用Microsoft Enterprise Library和MSMQ开箱即用。 Entlib Logging应用程序块具有内置的MSMQ侦听器。虽然我们在几个项目中使用了Entlib日志记录,但我还没有亲自使用过MSMQ分发服务。

http://msdn.microsoft.com/en-us/library/dd203267.aspx

答案 2 :(得分:0)

log4net是您的选择。它是thread-safe