Azure API 应用程序诊断
Azure API Apps Diagnostics
我有一个 Azure API 应用程序需要记录跟踪数据,因此选择使用 Azure 诊断和 .Net System.Diagnostics.Trace。
跟踪消息记录到 Table 存储,但事件 ID 字段为 0。在线文档建议 0 是默认值,但我看不到设置事件 ID 的明显方法。
Trace.TraceError、Trace.TraceInformation 和 Trace.TraceWarning 只接受字符串或格式化消息。
有人知道是否可以设置事件 ID,如果可以的话如何设置?
谢谢
安迪
虽然我不能把答案归功于我,但我认为我应该 post 我在这里找到的答案:https://blogs.msdn.microsoft.com/mcsuksoldev/2014/09/04/adding-trace-to-azure-web-sites-and-web-jobs/
基本上您使用 System.Diagnostics.TraceSource 类型并调用 TraceEvent() 方法。尽管如果没有先进行一些配置,这将无法工作。
需要注意三个跟踪侦听器,尽管对于 TableStorage 它只是第一个:
- AzureTableTraceListener
- AzureBlobTraceListener
- AzureDriveTraceListener
您需要安装 nuget 包:Microsoft.WindowsAzure.WebSites.Diagnostics
上面 link 中的代码示例是:
public static readonly TraceSource Operational = new TraceSource("Operational");
Operational.TraceEvent(TraceEventType.Verbose, 101, "TraceEvent WebSite Operational");
要使 TraceSource 登录到 TableStorage,您需要将以下内容添加到 web.config:
<system.diagnostics>
<sharedListeners>
<add name="AzureTableTraceListener" type="Microsoft.WindowsAzure.WebSites.Diagnostics.AzureTableTraceListener, Microsoft.WindowsAzure.WebSites.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</sharedListeners>
<sources>
<source name="Operational" switchName="OperationalSourceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="AzureTableTraceListener"/>
<add name="AzureBlobTraceListener"/>
</listeners>
</source>
</sources>
<switches>
<add name="OperationalSourceSwitch" value="All" />
</switches>
<trace autoflush="true" indentsize="4" />
安迪
我有一个 Azure API 应用程序需要记录跟踪数据,因此选择使用 Azure 诊断和 .Net System.Diagnostics.Trace。
跟踪消息记录到 Table 存储,但事件 ID 字段为 0。在线文档建议 0 是默认值,但我看不到设置事件 ID 的明显方法。
Trace.TraceError、Trace.TraceInformation 和 Trace.TraceWarning 只接受字符串或格式化消息。
有人知道是否可以设置事件 ID,如果可以的话如何设置?
谢谢 安迪
虽然我不能把答案归功于我,但我认为我应该 post 我在这里找到的答案:https://blogs.msdn.microsoft.com/mcsuksoldev/2014/09/04/adding-trace-to-azure-web-sites-and-web-jobs/
基本上您使用 System.Diagnostics.TraceSource 类型并调用 TraceEvent() 方法。尽管如果没有先进行一些配置,这将无法工作。
需要注意三个跟踪侦听器,尽管对于 TableStorage 它只是第一个:
- AzureTableTraceListener
- AzureBlobTraceListener
- AzureDriveTraceListener
您需要安装 nuget 包:Microsoft.WindowsAzure.WebSites.Diagnostics
上面 link 中的代码示例是:
public static readonly TraceSource Operational = new TraceSource("Operational");
Operational.TraceEvent(TraceEventType.Verbose, 101, "TraceEvent WebSite Operational");
要使 TraceSource 登录到 TableStorage,您需要将以下内容添加到 web.config:
<system.diagnostics>
<sharedListeners>
<add name="AzureTableTraceListener" type="Microsoft.WindowsAzure.WebSites.Diagnostics.AzureTableTraceListener, Microsoft.WindowsAzure.WebSites.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</sharedListeners>
<sources>
<source name="Operational" switchName="OperationalSourceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="AzureTableTraceListener"/>
<add name="AzureBlobTraceListener"/>
</listeners>
</source>
</sources>
<switches>
<add name="OperationalSourceSwitch" value="All" />
</switches>
<trace autoflush="true" indentsize="4" />
安迪