Azure 上でログを記録する方法?

| コメント(0) | トラックバック(0) このエントリーを含むはてなブックマーク

Azureをデプロイし問題を解決していく時に必要な道具としてログがある。

今回、デプロイ後のログ収集について分かった事をメモとして残しておこうと思う。

Azure上のログの取得方法

Diagnostic経由のログ

Azure上でログを取得する場合

  • System.Diagnostics.Trace.WriteLine
  • System.Diagnostics.Trace.TraceInformation

を利用した。このログは、Roleを実行しているVMの中に保存されている。

このログは単純には閲覧できないようである。 一つの方法は、ストレージへの転送を行うことで実現するらしい。

設定ファイル修正

ServiceConfiguration.cscfgの「name="DiagnosticsConnectionString"」をAzure Storage に変更しておく。 以下のコードの次の項目は自分のアカウント情報に切り替える。

  • AccountName=
  • AccountKey=
<ConfigurationSettings>
  <!-- <Setting name="DiagnosticsConnectionString" value="UseDevelopmentStorage=true" />-->
  <Setting name="DiagnosticsConnectionString"  value="DefaultEndpointsProtocol=https;AccountName=XXXXX;AccountKey=XXXXX" />     
</ConfigurationSettings>
 
 

詳しい説明

Windows Azure Monitoring, Logging, and Management APIs に、PDC 09年の動画がある。

今回はそれを参考に設定した。

Diagnosticの設定

以下のコードを追加することで、 ストレージに転送される。

public override bool OnStart()
{
    DiagnosticMonitorConfiguration conf = DiagnosticMonitor.GetDefaultInitialConfiguration();
    conf.Directories.ScheduledTransferPeriod = TimeSpan.FromSeconds(2);
    conf.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(2);
    // Set the maximum number of concurrent connections 
    ServicePointManager.DefaultConnectionLimit = 12;

    DiagnosticMonitor.Start("DiagnosticsConnectionString",conf);
 
 

Storage用ツール

転送されたログを管理するために以下のストレージアクセスツールを見つけた。 ログの転送には、前者のを利用する方がいいと思う。 (僕はこちらを利用している)

さいごに

問題解決に向けて、事実の把握は重要である。その一つとしてログがあるが、このログの確認について、 ここでは書いてみた

参考

WEB

書籍

トラックバック(0)

トラックバックURL: http://www.m-tea.info/mt-tb.cgi/54

コメントする

あわせて読みたいブログパーツ

このブログ記事について

このページは、k1ha410が2009年12月30日 22:53に書いたブログ記事です。

ひとつ前のブログ記事は「[速報]AzureからIronRubyを起動(疎通確認)」です。

次のブログ記事は「WorkerRoleへ外部から接続」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。