【问题标题】:EventLog with Azure使用 Azure 的事件日志
【发布时间】:2011-02-10 18:26:29
【问题描述】:

我希望能够使用 Azure 记录事件。

目前,我正在使用 EventLog 和 .WriteEntry 将其写入本地计算机上的日志。但是,当我将它上传到 Azure 时,我收到了一个请求错误。

我已经看到有关在 Microsoft.ServiceHosting.ServiceRuntime 中使用 RoleManager 的指南,但 Microsoft.ServiceHosting.ServiceRuntime 不是一个可用的添加参考(它说“过滤到:.NET Framework 4 和 Microsoft.ServiceHosting.ServiceRuntime不在列表中)。

有没有办法让日志记录与 .NET Framework 4 引用一起工作?

【问题讨论】:

    标签: azure event-log


    【解决方案1】:

    好的,首先我总是建议人们尝试抽象一些东西,比如直接写入事件日志。它是一种系统依赖,可以通过使用松散耦合的提供程序更好地表达。这样,您创建的特定代码可以在本地或 Windows Azure 中使用,只需更改提供程序即可。

    其次,创建自己的事件源存在安全限制。因此,我相当肯定,如果这是您尝试执行的操作,该操作将引发异常。

    最后,角色管理器问题不是错误。一年多前 Windows Azure 商业化时,该类已被弃用。我写了一篇短文讨论了它:http://brentdacodemonkey.wordpress.com/2010/03/05/azure-service-configuration-updated-or-%e2%80%9cwhere-did-rolemanager-go%e2%80%9d/

    在您的情况下,我会考虑创建一个直接写入 Azure 表存储的简单适配器。然后,您可以让您需要的任何事件监视过程定期检查该表。或者,使用 Azure 存储队列,这样您就不必不断扫描表中的新项目。 :) 只需查看队列并在找到项目时拉出项目。

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      不要在 Azure 中使用 Windows 事件日志。毫无意义。开发您自己的日志记录解决方案。您可能需要阅读 Windows 事件日志错误和警告以便转发到您的日志。这可以节省一些远程桌面故障排除时间。

      也不要使用 Azure 的内置诊断。与我合作过的大多数人都发现这种设置和配置不充分且繁琐。此外,由于机器上的批处理,在写入日志之前会有 1 分钟的延迟。

      滚动您自己的日志记录。只要您不必担心存储帐户规模问题,我发现最简单的方法就是写入表。您将希望根据您写入的日志量(我们写很多)每天/每小时根据表名和/或分区键滚动日志。您可能还希望日志与生产者/消费者模式异步,这样您就不会减慢您的流程。您应该同步编写关键日志(错误/警告),或者使用其他渠道进行报告(我们不使用日志报告错误,但将错误报告视为一等公民)。

      如果您开始遇到表的规模问题,您可以进行一些进程内批处理并附加到页 blob。这需要做更多的工作,但是当您记录很多时,您将能够更好地扩展。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-25
        • 1970-01-01
        • 2016-11-04
        • 2021-04-13
        • 2019-12-10
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        相关资源
        最近更新 更多