我们一直在办公室进行讨论,作为从VB6升级到.Net 3.5的旧应用程序的一部分,了解如何最好地进行日志记录。旧系统使用本地日志文件,其路径包含在注册表中(默认情况下不应指定一个)。我们大多数人现在倾向于使用Windows应用程序事件日志,但是有一个人提出了一个阻止我们死亡的问题。
像Citrix这样的环境,负载均衡意味着一个用户的会话可能由不同点的不同应用服务器提供服务?我们突然间可能会有来自几个服务器的会话的信息碎片(或者我们相信 - 我们大多数人之前没有必要处理这个问题,所以我们不是100%肯定的)这使得支持人员很难在支持电话会议期间将事件链拼凑在一起。普遍的共识似乎是我们应该使用MS Enterprise Library日志记录功能并为每个安装设置一个中央日志存储库。
任何人都可以推荐在包括应用服务器场在内的多个环境中进行应用程序日志记录的最佳实践或合理方法,而不是使用Enterprise Library的集中式日志,或者我们是否已经走上正轨?
干杯
答案 0 :(得分:2)
在Citrix场中,每个会话(登录前)执行负载平衡。无法在服务器之间移动单个会话。后者偶然是基于服务器的计算的“圣杯” - 如果你弄明白,告诉思杰如何做,他们会感兴趣; - )
这应该会让你更简单。在所有Windows环境中,会话始终位于同一物理虚拟机上。有了这些信息,记录到事件日志再次成为一种选择。
答案 1 :(得分:1)
通常我都在为桌面应用和服务使用内置的Windows日志记录功能。然而,这引发了一个有趣的问题。
我认为通过利用Enterprise Library并集中日志存储,您将获得更好的服务。
答案 2 :(得分:1)
我们使用自定义TraceListener类将日志写入集中式数据库。
答案 3 :(得分:1)
即使事件日志也适用于您的情况 - 您只需要包含活动ID和/或会话ID等内容。这样,您就可以关联应用程序日志的所有部分。
登录到中央数据库可以提供帮助,因为所有部分都可以放在一个位置。但是,您仍应考虑使用活动ID。
请参阅CorrelationManager课程。