繁体   English   中英

Windows服务:在何处写入日志消息(EventLog,文件或数据库表)/从Web访问

[英]Windows Service: Where to write log messages (EventLog, File or DB Table) / Access from Web

我们有一个Windows服务(在.NET中),可以将大量消息写入日志。

该日志不仅对服务器管理员感兴趣,而且对使用网页访问系统的普通客户端也很重要。 还是给我们尝试远程调试系统!

我们正在考虑使用普通的Windows服务器事件日志,或者写入数据库表,或者可能只是旧式写入文件。

是否有人对使用哪种最佳实践有什么建议?

重要的是,实际上只有日志可在Web页面中查看,为此我想到DB表是实现此目的的最简单方法? 通过网络显示Windows事件日志有多么容易(假设我们仅过滤与我们的应用相关的消息?)

正如您已经说过的那样,需要通过网页来访问日志,存储信息的最佳位置几乎肯定是在数据库中,因为您可以使用熟悉的代码来检索要在网络中显示的记录。接口。

就是说,如果您要构建“企业”系统,则可能要考虑以下事实:诸如Big Brother之类的监视解决方案具有内置的设施来监视事件日志条目并对其作出反应,因此以某种形式登录到在这种情况下,事件日志对于系统管理员而言非常有价值。 同样,Windows提供了“ 事件日志转发 ”功能,该功能允许将来自多台计算机的事件日志条目汇总在一起,以便在一台计算机上进行查看。 可能与您的情况无关,但请记住。

尝试考虑实施的难易程度。 您已经拥有使用数据库的整个基础架构。 仅添加新的存储过程或查询应该很容易。 您可以轻松进行备份。 而且,如果需要,您可以轻松地将此数据库转移到另一台服务器。 Windows服务器事件日志也是一个好地方,但是备份,可移植性和性能可能会受到影响。 如果您拥有专用的数据库服务器,那么恕我直言,这是一个更好的选择

如果您使用类似Enterprise Library之类的工具进行日志记录,那么将一条消息记录到多个位置就显得非常简单。 扩展它并编写自己的格式和目标也很容易。 您甚至可以摆脱它的进程记录。 另一个不错的方面是,如果其中一个位置损坏(例如,数据库关闭或文件被锁定),则您将拥有事件日志,该日志将记录这些错误。

还应注意,本地事件查看器可以连接到另一台计算机 管理员通常不会给开发人员授予对它的读取权限。 事件查看器的另一个优点是,如果您使用LogParser,则可以对其进行查询。

Eventlog是记录日志的好地方。 您可以在事件查看器中查看日志记录,并以编程方式访问这些记录。

我不建议您使用普通文件。 这很简单,但不易于管理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM