我可以在不将其写入存储的情况下查看我的Windows Azure日志吗?

时间:2012-05-28 04:22:07

标签: azure azure-diagnostics

我有:

Trace.WriteLine("info", "category");

贯穿我的工作者角色。在Azure Compute Emulator UI中本地运行时,我可以看到此输出。

是否有相同的输出显示为发布到Azure的相同角色而不将其写入存储?

5 个答案:

答案 0 :(得分:5)

DebugView可能有帮助。

  1. RDP到您的Azure VM
  2. 转到DebugView's site,然后点击“立即从Live.Sysinternals.com运行DebugView”
  3. 从菜单栏的“捕获”菜单中选中“捕获全局Win32”项目。
  4. 你可以找到Trace.WriteLine()的输出 enter image description here

答案 1 :(得分:0)

如果远程桌面到主机,您可能会找到它正在使用的文件。这有点令人讨厌,所以我在每台设备上都有一个后台线程,用于将日志消息发送回我的办公室。还有另一个进程将它们转储到我使用LogExpert检查的文件中。 我可以这样做,因为我的所有日​​志记录都是通过log4net进行的,而不是使用Trace。

答案 2 :(得分:0)

如您所知,在Azure VM上创建了Traces日志,因此如果您想看到自己拥有:

  1. RDP到Azure VM并查看
  2. 有一个流程可以将日志从Azure VM导回到您想要的任何位置(Azure诊断程序会为您执行相同的操作)。您可以编写自己的实现,以便在任何地方发送这些日志,而不是Azure存储。
  3. 还有另一个选择是在您的辅助角色中打开一个http端口(是的,您确定可以这样做并运行一个非常小的第三方Web服务器将日志直接导出到Web。不建议但仍然是一个选项)

答案 3 :(得分:0)

开箱即用的解决方案有些局限(通常涉及RDP,写入SQL和/或blob存储,或者让第3个进程轮询映像并将日志复制到另一个位置)。但是,没有什么可以阻止您编写通过tcp套接字写入日志条目的自定义跟踪侦听器。

我们非常快速地在我们公司站了起来,在Azure方面将以下内容结合起来:

http://msdn.microsoft.com/en-us/library/ff647545.aspx

http://robjdavey.wordpress.com/2011/02/11/asynchronous-tcp-client-example/

然后你只需要一个可访问的盒子上的一个简单的监听器(你甚至可以使用netcat或其他东西)来获取条目。

答案 4 :(得分:0)

如果您试图获得坐在您旁边的无头机器的输出,那么您拥有所有相同的选项。除了人们在这里提到的所有方法之外,我只想推荐使用Service Bus跟踪监听器。它应该是found in the samples。只需将您的角色连接起来(如果您更复杂一点,可以通过配置将其关闭并打开)并打开本地监听器。根据我的经验,它运行良好,您不必担心防火墙或TCP连接。