0

我正在为 Azure 服务设置日志记录。目前,我在 wadlogstable 中收到的消息如下所示:

<Properties>
  <EventTickCount SqlType="bigint">635193311660155844</EventTickCount>
  <DeploymentId SqlType="nvarchar(max)">deployment21(67)    </DeploymentId>
  <Role SqlType="nvarchar(max)">HTMLConverterWebRole    </Role>
  <RoleInstance SqlType="nvarchar(max)">deployment21(67).HTMLConverterWrapper.Cloud.HTMLConverterWebRole_IN_0   </RoleInstance>
  <Level SqlType="int">2</Level>
  <EventId SqlType="int">0</EventId>
  <Pid SqlType="int">6900</Pid>
  <Tid SqlType="int">14840</Tid>
  <Message SqlType="nvarchar(max)">2013-11-06 12:39:25.8449|ERROR|My error message</Message>
</Properties>

我还没有去过生产,但我想在xml中搜索很不方便。这方面的最佳做法是什么?我可以自定义其中的元素吗?我不认为我真的需要 Pid、Tid,我也没有看到 EventId 的用途。

更新:我现在实际上正在使用 NLog,但我正在按照此处所述进行操作:http: //awkwardcoder.blogspot.com/2012/03/getting-nlog-working-with-azure-is-as.html

因此它将日志发布到跟踪目标,据我所知,跟踪由 DiagnosticMonitorTraceListener 捕获,以 Windows Azure 表结尾。所以我使用 NLog 在生成的 xml 中格式化我的“Message”元素,“Level”和“EventId”元素取决于我调用的 NLog 方法(Logger.Debug* 或 Logger.Error* 等),但我无权访问此 xml 的一般格式。此外,我可能更喜欢具有“级别”、“日期”等专用字段的自定义日志记录表,因此我不必在每个日志查询中解析它。

4

2 回答 2

1

不幸的是,您无法控制由 Windows Azure 诊断程序自动记录的数据格式。如果您使用custom logging. 对于自定义日志记录,您可以使用 NLog 之类的东西。在这种情况下,应用程序记录的数据存储在文件中,并使用 Windows Azure 诊断程序自动传输到 blob 存储。

于 2013-11-06T11:35:14.697 回答
1

您还可以使用性能计数器 + 3rd 方工具来显示结果(即 New Relic),或者您可以构建自己的仪表板。

http://www.windowsazure.com/en-us/develop/net/common-tasks/performance-profiling/ http://www.codeproject.com/Articles/303686/Windows-Azure-Diagnostics-Performance-Counters-在 http://michaelwasham.com/2011/09/19/windows-azure-diagnostics-and-powershell-performance-counters/

于 2013-11-06T16:21:15.013 回答