ローカルでワーカーロールを実行すると、Windows Azure Compute Emulatorアプリケーションを開いて、ワーカープロセスの標準出力とエラーを確認できます。Azure:リモートデスクトップを使用しているときに、自分の役割のログはどこで確認できますか?
リモートデスクトップを私のAzureインスタンスにインストールすると、同じ情報をどこから取得するのか分かりません。標準出力とエラーはどこにありますか?
ローカルでワーカーロールを実行すると、Windows Azure Compute Emulatorアプリケーションを開いて、ワーカープロセスの標準出力とエラーを確認できます。Azure:リモートデスクトップを使用しているときに、自分の役割のログはどこで確認できますか?
リモートデスクトップを私のAzureインスタンスにインストールすると、同じ情報をどこから取得するのか分かりません。標準出力とエラーはどこにありますか?
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についての詳細を学ぶことができます。
実際の展開で作業者プロセスの標準出力とエラーを確認するには、追加の設定を行う必要があります。このデータは永続ストレージに保存する必要があります。
最初の手順は、WorkerRole
の設定ウィンドウで診断を有効にすることです。ここでは、ストレージアカウントを指定する必要があります。
次のステップは、WorkerRole
のOnStart()
メソッドにコードを追加することです。ここでは、標準出力とエラーを構成するだけでなく、次のコード例に示すように、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ポートを開いて、自分のサーバーに転送することができます。
System.Diagnostics.Traceを使用してワーカーロールにメッセージを書き込みますか? – AvkashChauhan
いいえ、私はWorker Roleを非.NETの 'ProgramEntryPoint'で実行しています。しかし、それは私の質問から明らかではないことがわかります---それに対処するための新しい質問を開きます。 –
Azureワーカーロールで非.NETアプリを実行するために 'ProgramEntryPoint'を使用している場合、[この質問(http://stackoverflow.com/questions/10827388/)を参照してください。 –