Webサイト:ストリーミング診断ログ
今回のリリースで特に素晴らしい新機能の一つが、Windows Azure Webサイトのアプリケーションログを直接Visual Studioに流せるようになったことです。これは非常に便利な機能で、Windows Azureのクラウドで実行されているWebサイトを簡単にデバッグできます
本番環境の診断ログのストリーミングを有効にする方法
この機能を試すには、まずASP.NET WebアプリケーションにTraceステートメントを追加して、(Webサイトとして)Windows Azureに発行します。.NET標準のSystem.DiagnosticsトレーシングAPIを使用してアプリにTraceステートメントを追加します。Trace.TraceErrorメソッドを使用してエラーを書き出します。
デフォルトでは、無効になっているため、このメソッドは何もしません。
Webサイトでトレーシングを有効にするには(デバッグする場合)、Windows Azure管理ポータルで行います(有効にするにはWebサイトのConfigurationタブをクリックします)。
または、(上記でやったように)Visual Studioのサーバーエクスプローラ内で View Settingsコマンドを使用して直接行うことも可能です。
Webサイトでアプリケーションのログを有効にして、“Error”をすべてログに残す方法は上記をご確認ください。“Error”を選択して、“Save”ボタンをクリックすると、Windows Azureにその設定が反映され、Webサイトが動作した時点で、Trace Errorステートメントが保存されます。
Visual Studio内でTraceステートメントを確認する場合は、サーバーエクスプローラ内でWebサイトをクリックして、View Streaming Logs in Output Windowコマンドを選択するだけです。
これにより、Visual Studioの出力ウィンドウが開いて、本番環境で実行されると、Trace.TraceErrorステートメントが表示されます(約2秒ほどの遅れはありますが、Visual Studio出力ウィンドウにすぐ反映されるので、何かをデバッグする際は非常に便利です)。
問題のデバッグが終了すれば、Webサイトを再度右クリックして、Stop Viewing Logsコマンドを選択すれば、VSに送信しているログを停止できます(また問題が解決したときは必ず設定ウィンドウで、ログすべてを停止して、無効状態に設定してください)。
上記のサポートは非常に便利で、Windows Azureの本番環境に起こった問題のみ簡単にデバッグできます。この機能の詳細(およびコマンドラインの使用方法)については、Scott Hanselman氏のこのブログをご確認ください。
Visual Studioでアプリケーションログをストリームする前に、Windows Azure Webサイトに、/LogFiles/Applicationディレクトリを設置しておく必要があります。これはTraceステートメントがディスクに初めて書かれる際に作成されますので、Visual Studio内のログストリーミングが開く前にまずTraceステートメントを実行しておく必要があります。1-2週間以内に、Windows Azure Webサイトを更新して、既存および新規作成されたWebサイトに、このディレクトリが自動的に作成されるようにする予定です。それまでは、VSにログストリーミングウィンドウが開始される前に、Traceステートメントを一度書き出しておいてください。