1

.NetWorker ロール (Azure) があり、アプリケーションは次の形式でローカル ログ ファイルに書き込みます。

StreamWriter sw = File.AppendText("aaa.log");
sw.WriteLine("Error occured"");
sw.Close();

このログ ファイルを表示するにはどうすればよいですか?

4

1 に答える 1

5

あなたが提示した上記の質問に対する直接の答えは次のとおりです。

  • テンプレートから空のWindowsAzureワーカーロールを作成し、OnStart()関数に上記のコードを正確に追加してから、ComputeEmulatorでアプリケーションをテストする場合:

    public override bool OnStart()
    {
        // Set the maximum number of concurrent connections 
        ServicePointManager.DefaultConnectionLimit = 12;
        StreamWriter sw = File.AppendText("aaa.log");
        sw.WriteLine("Error occured");
        sw.Close();
    
        return base.OnStart();
    }
    
  • 以下の場所にaaa.logファイルが作成され、テストアプリケーション名が「TestWorkerRole」であるため、フォルダーの詳細を一致させることができます。

    _your_drive_and_Folder_path \ TestWorkerRole \ TestWorkerRole \ csx \ Debug \ roles \ WorkerRole1 \ approot \ aaa.log

  • また、「エラーが発生しました」というテキストが含まれていることを確認して、コードが想定どおりに実行されたことを確認できます。

  • まったく同じアプリケーションをWindowsAzureにデプロイすると、コードが実行され、同じaaa.logファイルが次の場所で生成されます。

    E:\ approot \ bin

上記のアプローチは正しいですが、まったくありません。次の主な理由により、使用しないでください。

  • Windows Azure VMは永続化されないため、作成したものは後で使用できなくなる可能性があるため、データを移動する方法が必要です。
  • Windows Azureは、アプリケーションに診断を追加する特定の方法を提供します。この方法では、すべてのログがWindows Azure VMの特定の固定場所に作成され、設定(Azureストレージとログの転送時間)に基づいて、これらのログがAzureから転送されます。 WindowsAzureストレージへのVM。
  • 以下のリンクで説明されているカスタムログメソッドを追加するには、WindowsAzureDiagnosticsメソッドを使用する必要があります。

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

于 2012-05-07T01:15:00.347 に答える