6

到目前为止,我所有的应用程序都只记录到文件中。它对我来说很好用,我从来没有遇到过任何问题。

我的一个朋友建议我也可以使用 Windows 事件日志,但我不确定。我一直认为事件日志仅用于一些非常重要的消息,如果可以避免,我不应该写入它。

我什么时候可以/应该写入窗口事件日志?

4

2 回答 2

5

在我看来,是否记录到 Windows 事件日志的决定取决于您的应用程序以及运行您的软件的人员。

记录到事件日志绝对没有缺点,任何使用日志监控解决方案的人都会感谢您的努力。

一般来说,您绝对应该避免将“调试”类型的消息记录到事件日志中,或者在短时间内产生大量消息的任何内容。但是,对管理您的软件的人有用的任何信息都可以(并且应该)记录到事件日志中。

STATUS_ACCESS_DENI 还提到了本地化,这是相对于传统日志记录的重要优势。

您将记录以下内容:

  • 需要干预的错误和警告
  • 重要状态报告(软件启动、停止、自身更新等)

您可能需要查看这篇博客文章,该文章概述了如何创建自己的消息 dll,这是登录到 Windows 事件日志时的首选方式:

http://www.eventlogblog.com/blog/2010/11/creating-your-very-own-event-m.html

可能要记住的一件事是设计您的日志记录,以便它不会在短时间内用重复事件污染事件日志。例如,Microsoft SQL Server 在某些情况下会在几秒钟内真正记录数千个相同的事件。这对于系统管理员来说可能是令人沮丧的。大多数日志监控解决方案都可以解决这个问题,但这仍然很烦人。

底线:是的,您应该考虑记录到事件日志。

于 2012-04-11T22:35:49.273 回答
4

首先,除了三个默认值(系统、应用程序、安全性)之外,您还可以注册自己的事件日志,从而将您的消息与其他消息分开。这是经常被忽视的可能性之一。

一般来说,我总是建议在你的二进制文件和事件日志工具中使用消息表,而不是任何自制方法。原因很简单:

  1. 如果需要,您可以轻松登录到远程机器(或本地机器)
  2. 您可以从远程机器读取事件日志(例如,管理员可以在任何客户端机器上列出其域内的事件日志)
  3. 消息表节省空间
  4. 消息表允许轻松本地化
于 2012-04-09T15:25:29.160 回答