Azure 诊断、WADLogs、在 Azure 管理门户中查看

Azure DIagnostics, WADLogs, Viewing in Azure Management Portal

这可能是一个非常愚蠢的问题,我是 Azure 的新手。

我正在使用 Azure SDK 2.5

我有一个辅助角色部署到 Azure 上,我正在使用诊断来跟踪执行。

Trace.TraceInformation("Service WorkerRole has stopped");

有没有办法在Azure管理门户的服务器资源管理器中查看WadLogs文件?或者将数据传输到 blob 存储或其他地方以便在线查看的方法?

基本上,当我的辅助角色抛出异常时,我希望能够从 Azure 管理门户轻松查看。

您需要使用辅助角色设置一个存储帐户,以便将日志存储在 Table 存储中。在你的配置文件中添加以下代码 <ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="value="DefaultEndpointsProtocol=https;AccountName=<your storage account name here>;AccountKey=<your storage account key here>" /> </ConfigurationSettings>

您的诊断相关数据将存储在 azure tables 中,Trace 日志存储在 table 名称 WadLogsTable 中.您需要使用 storage explorer to view the logs from the table. I prefer to use Azure Storage Explorer,因为它是开源的并且支持 Blob、Tables 和队列。

您可以使用 Application insights 来监视 Azure 门户中的辅助角色。从技术上讲,Microsoft 仍在添加对控制台和其他非 Web 应用程序的支持,但我能够根据我的目的使用已有的功能。

我根据 these instructions 在门户上创建了一个 Application insight。

然后在 Visual Studio 中使用 Nuget 包管理器,我添加了 Application insights API、网站的 Application insights(即使我的工作者角色不是 Web 应用程序)和 Application insights 跟踪侦听器.

然后我通过将以下内容添加到工作者角色来创建一个应用程序洞察实例。

using Microsoft.ApplicationInsights;

namespace WorkerRole
{
public class WorkerRole : RoleEntryPoint
{
    private TelemetryClient tc = new TelemetryClient();

然后将其添加到工作者角色的 onStart 方法中。

        tc.Context.InstrumentationKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX";

您可以在 Azure 门户中找到检测密钥。

在 运行 或部署我的工作者角色之后,我可以在 Azure 门户中查看我的所有 Trace.TraceInformation 和 TraceError 语句,以及添加 tc.TrackError 和 tc.TrackEvent跟踪错误、异常和事件的语句。