【问题标题】:Logging web services operations behind load balancer在负载均衡器后面记录 Web 服务操作
【发布时间】:2018-10-12 14:16:20
【问题描述】:

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

我正在使用 c# 和 log4net。

附加程序是 RollingFileAppender 和 AdoNetAppender。

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

如果你使用 RollingFileAppender,事情会变得更糟,因为几个 进程可能会尝试同时开始滚动日志文件。 RollingFileAppender 滚动时完全忽略锁定模型 文件,滚动文件根本不兼容这种情况。

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

我更喜欢保留 log4net,但我也对其他解决方案感兴趣(不是 linux syslog 之一)。不允许有成本的商业解决方案。

【问题讨论】:

标签: c# logging load-balancing log4net


【解决方案1】:

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

您有多种选择:

  • 记录到不同的文件 - 每个服务器可以有一个单独的文件
  • 将所有日志发送到一个应用程序,然后该应用程序将记录到文件中。这将使您的日志记录更加脆弱,并且需要额外的开发工作。
  • 记录到数据库 - 数据库旨在让多个进程同时写入它们
  • 记录到日志服务器 - SeqStackify RetraceAzure Application Insights 是一些强大的解决方案示例,旨在从多个应用程序中提取日志 - 而且您可以获得更好的功能

【讨论】:

  • 感谢您的明确答复;这对我很有帮助。我正在处理碰巧使用 Log4Net 的供应商产品的类似需求。在我自己的应用程序中,我使用 NLog,但我希望两个日志平台的答案是相似的。
猜你喜欢
  • 2013-08-26
  • 2017-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多