Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Windows Azure Diagnostics IISログなど

今回は、Blobに出力されるログについてのまとめです。前々回も説明したように、ログの出力先はTableとBlobに分類され、IISログなどはBlobに出力されます。

Blobに出力されるログは、すべて同じ枠組みで動作しており、簡単にいうとローカルストレージに出力されたファイルをBlobに転送するだけの簡単な仕組みです。

独自ログについても同様で、DirectoryConfigurationに任意のフォルダを設定し、そのフォルダにファイルを書き込んでおくと、同じ仕組みでBlobに転送されます。

ログの種類 出力先
トレースログ Table
パフォーマンスカウンタ Table
イベントログ Table
インフラログ Table
IISログ Blob
IIS失敗ログ Blob
クラッシュダンプ Blob
その他 独自ログ Blob

クラス図を書くと以下のような感じ。

IISのログを取得サンプルが以下。特に転送間隔を設定している以外になにもしてません。これは、IISログはデフォルトで取得されローカルストレージに蓄積されているので、これをBlobに転送するか否かの設定をするだけなのです。

  // Monitorの取得
  var mconfig = DiagnosticMonitor.GetDefaultInitialConfiguration();

  // 転送間隔
  mconfig.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);

  // モニタ開始
  DiagnosticMonitor.Start("DiagnosticsConnectionString", mconfig);


Blobに出力されたログ。フォルダ構成そのままにBlobに格納される。(階層化してみせているのはCloud Xplorerの仕組みで、Blobのコンテナは1階層)

出力されたログをNotepadで開いたところ。