2011-02-10 5 views
0

私はAzureでイベントを記録できるようにしたいと思います。Azureでイベントログ

現在、EventLogと.WriteEntryを使用してローカルマシンのログに書き込みます。しかしこれをAzureにアップロードするとリクエストエラーが出ます。

Microsoft.ServiceHosting.ServiceRuntimeでRoleManagerを使用する方法について説明しているガイドを見てきましたが、Microsoft.ServiceHosting.ServiceRuntimeは追加可能な参照ではありません(「フィルタを適用する:.NET Framework 4とMicrosoft.ServiceHosting」。 ServiceRuntime)がリストにない

は、.NET Framework 4の参照での作業ログを取得する方法はあり

それはこのようになります

答えて

1

大丈夫です。まずは、イベントログに直接書き込むなどの作業を抽象化することをおすすめします。これは、疎結合プロバイダを使用することでよりよく表現されるシステム依存性です。このようにして、作成した特定のコードは、プロバイダーを変更するだけで、宅​​内またはWindows Azureで使用できます。

第2に、独自のイベントソースの作成に関するセキュリティ上の制約があります。だから私はかなりこれがあなたがしようとしている場合は、操作は例外をスローすることは確かです。

最後に、ロールマネージャの問題はバグではありません。このクラスは、Windows Azureが1年以上前に商用化されたときに廃止されました。 http://brentdacodemonkey.wordpress.com/2010/03/05/azure-service-configuration-updated-or-%e2%80%9cwhere-did-rolemanager-go%e2%80%9d/

あなたの状況では、Azure Table Storageに直接書き込む簡単なアダプタを作成します。その後、必要なイベント監視プロセスを定期的にチェックすることができます。または、Azure Storage Queuesを使用して、新しいアイテムのテーブルを継続的にスキャンする必要はありません。 :)ちょうどキューを覗いてそこに見つかったときにアイテムを引っ張ってください。

0

AzureでWindowsイベントログを使用しないでください。ポイントはありません。独自のログソリューションを開発します。あなたのログに転送するためにWindowsイベントログのエラーと警告を読むことができます。これにより、リモートデスクトップのトラブルシューティングで時間を節約できます。

Azureの内蔵診断機能も使用しないでください。私が仕事をしてくれたほとんどは、この設定が不適切で面倒であることがわかりました。また、マシン上のバッチ処理によってログが書き込まれるまでに1分の遅延があります。

独自のログを記録します。ストレージアカウントの規模の問題を気にする必要がない限り、私が最も簡単に見つけたことは、テーブルに書き込むことです。ログの量に応じて、テーブル名および/またはパーティションキーで毎日/時間単位でログをロールしたい(LOTを書く)でしょう。おそらく、プロデューサ/コンシューマパターンと非同期にログを持ち、プロセスを遅くしないようにすることもできます。同期的に作成する必要がある重要なログ(エラー/警告)、または別のチャネルを使用してレポートする(ログを使用してエラーを報告するのではなく、エラー報告をファーストクラスの市民として扱う)

テーブルの縮尺の問題を開始する場合は、インプロセスバッチ処理をいくつか行い、ページブロブに追加することができます。これはもう少し作業ですが、ロットをロギングしているときはずっとスケールすることができます。

関連する問題