3

我有:

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

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

无论如何,在不将其写入存储的情况下,是否可以看到发布到 Azure 的相同角色的相同输出?

4

5 回答 5

5

DebugView 可能会有所帮助。

  1. 到 Azure VM 的 RDP
  2. 转到DebugView 的站点并单击“立即从 Live.Sysinternals.com 运行 DebugView”
  3. 从菜单栏中的捕获菜单中选中“捕获全局 Win32”项。
  4. 您可以找到 Trace.WriteLine() 的输出 在此处输入图像描述
于 2012-05-31T00:52:43.087 回答
0

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

我们很快就在我们的公司站了起来,在 Azure 方面结合了以下内容:

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

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

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

于 2012-05-29T00:59:14.367 回答
0

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

于 2012-05-28T04:42:00.080 回答
0

如果您试图获得坐在您旁边的无头机器的输出,您将拥有所有相同的选择。除了人们在这里提到的所有方法之外,我只想推荐使用服务总线跟踪侦听器。它仍然应该在样本中找到。只需将其连接到您的角色(如果您更复杂一点,您可以通过配置将其关闭和打开)并打开本地侦听器。根据我的经验,它运行良好,您不必担心防火墙或 TCP 连接。

于 2012-05-29T16:34:02.697 回答
0

如您所知,跟踪日志是在 Azure VM 上创建的,因此如果您想查看是否拥有:

  1. RDP 到 Azure VM 并查看那里
  2. 有一个流程可以将 Azure VM 中的日志导出回您想要的任何地方(Azure 诊断也为您做同样的事情)。你可以编写自己的实现,将这些日志发送到任何你希望的地方,而不是 Azure 存储。

还有另一种选择是在您的工作人员角色中打开一个 http 端口(是的,您确定可以这样做并运行一个非常小的第 3 方网络服务器将日志直接导出到网络。不建议但仍然是一个选项)

于 2012-05-28T23:51:55.910 回答