在负载均衡器后面记录Web服务操作

时间:2018-10-12 14:16:21

标签: c# logging load-balancing log4net

我开发了一些Web服务,这些Web服务将安装在负载均衡器后面的4个不同服务器上,以维护会话。

我正在使用c#和log4net。

附加程序是RollingFileAppender和AdoNetAppender。

我从https://logging.apache.org/log4net/release/faq.html阅读(如何获取多个进程来登录到同一文件?

  

如果使用RollingFileAppender,情况会变得更糟   进程可能会尝试同时开始滚动日志文件。   RollingFileAppender在滚动时完全忽略锁定模型   文件,滚动文件根本不符合这种情况。

我不能将RollingFileAppender与MinimalLock一起使用。但是我想从不同的服务器登录到同一文件。

我更喜欢保留log4net,但我也对其他解决方案(而不是linux syslog)感兴趣。没有任何商业解决方案可以节省成本。

1 个答案:

答案 0 :(得分:0)

不幸的是,您会发现从多个进程直接登录到同一文件不是一个可行的选择。

您有几种选择:

  • 登录到不同的文件-每个服务器可以有一个单独的文件
  • 将所有日志发送到一个应用程序,然后将其记录到文件中。这会使您的日志记录更加脆弱,并需要额外的开发工作。
  • 登录数据库-数据库被设计为具有多个同时写入数据库的进程
  • 登录到日志记录服务器-SeqStackify RetraceAzure Application Insights是一些解决方案的示例,这些解决方案很健壮,旨在从多个应用程序中提取日志-此外,您还可以获得更好的功能