2012-05-30 1 views
5

ローカルでワーカーロールを実行すると、Windows Azure Compute Emulatorアプリケーションを開いて、ワーカープロセスの標準出力とエラーを確認できます。Azure:リモートデスクトップを使用しているときに、自分の役割のログはどこで確認できますか?

リモートデスクトップを私のAzureインスタンスにインストールすると、同じ情報をどこから取得するのか分かりません。標準出力とエラーはどこにありますか?

+0

System.Diagnostics.Traceを使用してワーカーロールにメッセージを書き込みますか? – AvkashChauhan

+0

いいえ、私はWorker Roleを非.NETの 'ProgramEntryPoint'で実行しています。しかし、それは私の質問から明らかではないことがわかります---それに対処するための新しい質問を開きます。 –

+0

Azureワーカーロールで非.NETアプリを実行するために 'ProgramEntryPoint'を使用している場合、[この質問(http://stackoverflow.com/questions/10827388/)を参照してください。 –

答えて

0

Azure Diagnosticsを適切に設定してそこからWindows Azure Table Storage(WADLogsTable Table)に送信すると、取得できるトレースメッセージは、代わりにWindow Azureのどこにも保存されません。

、あなたがトレース用のAzureの診断を可能にする方法を知りたい場合は、以下のリンクを訪問し、のWindows Azureの診断デモンストレーションコードサンプルを探します。

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

必要がAzureの診断hereについての詳細を学ぶことができます。

3

実際の展開で作業者プロセスの標準出力とエラーを確認するには、追加の設定を行う必要があります。このデータは永続ストレージに保存する必要があります。

最初の手順は、WorkerRoleの設定ウィンドウで診断を有効にすることです。ここでは、ストレージアカウントを指定する必要があります。

次のステップは、WorkerRoleOnStart()メソッドにコードを追加することです。ここでは、標準出力とエラーを構成するだけでなく、次のコード例に示すように、Windowsイベントと診断情報を聴くこともできます。

public override bool OnStart() 
{ 
    DiagnosticMonitorConfiguration diagConfig = 
     DiagnosticMonitor.GetDefaultInitialConfiguration(); 

    // Windows event logs 
    diagConfig.WindowsEventLog.DataSources.Add("System!*"); 
    diagConfig.WindowsEventLog.DataSources.Add("Application!*"); 
    diagConfig.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Error; 
    diagConfig.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(5); 

    // Azure application logs 
    diagConfig.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; 
    diagConfig.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(5); 

    // Performance counters 
    diagConfig.PerformanceCounters.DataSources.Add(
     new PerformanceCounterConfiguration() 
    { 
     SampleRate = TimeSpan.FromSeconds(5), 
     CounterSpecifier = @"\Processor(*)\% Processor Time" 
    }); 
    diagConfig.PerformanceCounters.ScheduledTransferPeriod = 
     TimeSpan.FromMinutes(5); 
    DiagnosticMonitor.Start(
     "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagConfig); 
    return base.OnStart(); 
} 

これらの設定後、診断データは設定済みのAzureテーブルストレージに表示されます。ここでデータを視覚化するためのツールを簡単に書くことができますが、このための機能を組み込んだ商用ツールもあります。例えば、 Cerebrata Diagnostics Manager

何らかの理由でAzure Storageを使用してログファイルを保存したくない場合は、他の場所にログを書き込むカスタムトレースリスナを実装できます。 Hereはそれを行う方法についての説明です。単にhttpポートを開いて、自分のサーバーに転送することができます。

関連する問題