我们有一个Windows服务(在.NET中),它会将大量的消息写入日志。
此日志不仅对服务器管理员有用,而且对使用网页访问系统的普通客户也有用。或者我们试图远程调试系统!
我们正在考虑使用普通的Windows服务器事件日志,或者写入数据库表,或者只是将旧文件写入文件。
有没有人有任何最佳实践建议可供使用?
重要的是,只有日志可以在网页中查看,出于这个目的,我认为数据库表是最容易实现的方法吗?通过网络显示Windows事件日志是多么容易(假设我们只筛选与我们的应用程序相关的消息?)
答案 0 :(得分:1)
正如您所说,日志需要通过网页访问,存储信息的最佳位置几乎肯定会在数据库中,因为您可以使用您熟悉的代码来检索记录在网络界面中。
也就是说,如果您正在构建一个“企业”系统,您可能需要考虑监视解决方案(如Big Brother)内置了监视事件日志条目并对其作出反应的事实,因此在这种情况下,某种形式的日志记录对于系统管理员来说非常有用。此外,Windows提供“Event Log Forwarding”,允许聚合来自多台计算机的事件日志条目以便在单台计算机上进行查看。可能与您的场景无关,但值得记住。
答案 1 :(得分:0)
尝试考虑易于实施。您已经拥有了与DB一起使用的整个基础架构。添加新的存储过程或查询应该很容易。您可以轻松备份。此外,如果需要,您可以轻松地将此DB传输到另一台服务器。 Windows服务器事件日志也是一个好地方,但备份,可移植性和性能可能会受到影响。 如果你有一个专用的数据库服务器,那么它是一个更好的选择,恕我直言
答案 2 :(得分:0)
如果您使用类似Enterprise Library的内容,那么将一条消息记录到多个位置非常简单。扩展它并编写自己的格式和目标也很容易。您甚至可以使用它进行进程日志记录。另一个很好的方面是,如果其中一个位置被破坏(例如DB已关闭或文件被锁定),您将拥有将记录这些错误的事件日志。
还应注意,您的本地事件查看器可以Connect to another Computer。管理员通常没有问题授予开发人员对其的读取权限。事件查看器的另一个优点是,如果您使用LogParser,则可以查询它。
答案 3 :(得分:0)
Eventlog是一个更好的日志记录地点。 您可以在事件查看器中查看日志记录并以编程方式访问这些记录。
我不建议您使用普通文件。这很简单但不易管理。