【问题标题】:Logging to files or to event viewer?记录到文件或事件查看器?
【发布时间】:2011-04-05 12:52:51
【问题描述】:

我想知道记录信息消息的“正确”方式是什么?到文件,还是到事件查看器中的特殊日志?

我喜欢记录到文件,因为我可以使用滚动平面文件侦听器并查看每天的新日志,而且在事件查看器中我一次只能看到一条消息 - 在文件中我可以扫描一天很容易。我的同事认为文件只是占用空间,他喜欢将警告、错误和信息消息集中在一个地方。你怎么看?有首选方法吗?如果有,为什么?

另外,任何方法中是否存在任何并发问题?我已经读过 entlib 是线程安全的,并且如果侦听器不是线程安全的,则会在后面生成 Monitor.Enter,但我想确保(我们只是使用 Logger.Write)。我们使用的是 entlib 3.1。

提前谢谢你。

【问题讨论】:

  • log4net 为我工作,然后您可以自定义目标以适合您的特定用途/安装。我也喜欢每日文件!

标签: c# .net logging thread-safety enterprise-library


【解决方案1】:

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

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

日志文件 - 一般规则,我们记录所有内容,但可以选择级别或过滤器的类型来降低记录的消息量

EventLog 总是一个不错的选择,因为它绑定到 WMI。通过这种方式,Open View 等产品可以监控并在出现问题时向操作人员发出警报。但是,将消息保持在最低限度,因为它很慢,每个消息的大小都受到限制,并且由于您可以轻松快速地填充 EventLog 并且您的应用程序必须处理可怕的“EventLog is Full”异常: )

希望这会有所帮助...

【讨论】:

    【解决方案2】:

    在企业应用程序中有不同类型的日志,例如 -

    1. 活动日志 - 检测进程并有助于调试的技术日志
    2. 审核日志 - 用于审核目的的日志。在某些情况下,此类日志的可用性是一项法律要求。

    什么存储在哪里:-

    1. 就审核日志或任何包含敏感信息的日志而言,它们应该转到可以安全存储的数据库中。

    2. 对于活动日志,我的首选是文件。但是我们还应该有不同的日志级别,例如错误、信息、详细等,这些级别应该是可配置的。这样可以在不需要时节省记录所需的空间和时间。

    3. 只有在无法写入文件时才应写入事件日志。

    【讨论】:

      【解决方案3】:

      我更喜欢记录到数据库,这样我就可以分析我的日志,生成错误发生的统计数据和趋势,并修复最常见的错误。

      对于外部客户,我使用名为 async 的 Web 服务来报告错误。 (我接受了它的任何期望,因此任何日志记录错误都不会影响客户端 - 不是我有任何,使用 log4net 和 L4Ndash)。

      【讨论】:

        【解决方案4】:

        我会推荐 Event-viewer,但如果您没有管理员权限或对 Event-viewer 没有特定访问权限,则记录到普通文件会是更好的选择。

        【讨论】:

          【解决方案5】:

          考虑询问您的客户管理员或技术支持人员他们希望将日志放置在哪里。

          至于线程安全,是的,EntLib 是线程安全的。

          【讨论】:

            【解决方案6】:

            没有“正确”的方法。这取决于您的要求。

            您“喜欢”查看平面文件,但您每天真正能阅读多少(数千)行?

            您似乎需要的是一个计划(政策),这应该涉及一些工具。问问自己,您多久会注意到日志中的异常?还有没有什么正常的东西?

            事件日志需要更多的工作/开销,但可以通过某些工具轻松地远程监控(多个服务器)。如果您使用(仅)手动检查,请不要打扰。

            【讨论】:

            • 谢谢你,你是对的,我不会注意到任何这些,是的 - 我们只使用手动检查,至少目前是这样。性能方面呢?并发问题?
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-02-17
            • 1970-01-01
            • 2022-11-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多