记录到文件或事件查看器?

Rit*_*ita 8 .net c# logging enterprise-library thread-safety

我想知道记录信息消息的"正确"方法是什么; 到文件,或在事件查看器中的特殊日志?

我喜欢记录到文件,因为我可以使用滚动平面文件监听器并查看每天的新记录,而且在事件查看器中我一次只能看到一条消息 - 在文件中我可以很容易地扫描一天.我的同事争辩说,文件占用空间,他喜欢在一个地方发出警告,错误和信息消息.你怎么看?有首选方式吗?如果是这样,为什么?

此外,任何方法中是否存在并发问题?我已经读过entlib是线程安全的,如果监听器不是线程安全的话,会生成一个Monitor.Enter,但我想确定(我们只是使用Logger.Write).我们正在使用entlib 3.1.

先感谢您.

小智 5

这是我在记录消息时使用的经验法则.

EventLog(如果你有访问权限) - 我们总是记录未处理的异常 - 在大多数情况下我们记录错误或致命 - 在某些情况下我们记录警告 - 在一些非常罕见的情况下我们记录信息 - 我们永远不会记录无用的一般消息,如: "我在这里,等等,等等,等等"

日志文件 - 一般规则,我们记录everthing但可以选择用于调低记录消息量的级别或过滤器类型

EventLog始终是一个很好的选择,因为它绑定到WMI.这样,像Open View等产品一样,如果出现问题,可以监视和警告操作.但是,将消息保持在最低限度,因为它很慢,其大小限制在每个messaeg的基础上,它的入口限制,因为您可以很快地填充EventLog并且您的应用程序必须处理可怕的"EventLog is Full"异常: )

希望这可以帮助...