EventLog with Azure

时间:2011-02-10 18:26:29

标签: azure event-log

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

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

我见过有关在Microsoft.ServiceHosting.ServiceRuntime中使用RoleManager的指南,但Microsoft.ServiceHosting.ServiceRuntime不是可用的添加引用(它表示“已过滤到:.NET Framework 4和Microsoft.ServiceHosting.ServiceRuntime不在列表中。)

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

3 个答案:

答案 0 :(得分: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 Table Storage的简单适配器。然后,您可以让任何事件监视过程定期检查该表。或者,使用Azure存储队列,这样您就不必持续扫描表中的新项目。 :)只要偷看队列,就可以在那里找到拉物品。

答案 1 :(得分:0)

答案 2 :(得分:0)

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

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

滚动您自己的日志记录。只要您不必担心存储帐户规模问题,我发现最容易到期的是写入表。您将希望每天/每小时在表名和/或分区键上滚动日志,具体取决于您编写的日志数量(我们写了很多)。您可能还希望让日志与生产者/消费者模式异步,这样您就不会减慢流程速度。您应该同步编写的关键日志(错误/警告),或使用其他渠道进行报告(我们不使用日志报告错误,而是将错误报告视为头等公民)。

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