Help us understand the problem. What is going on with this article?

azure web site での簡単なログの取り方

More than 5 years have passed since last update.

1日目2日目とレベルの高い話が続いていますが、3日めはがっつりとレベルを落としていきます!

ということで、azure を利用し始めた時に、自分の中で一番困ったことをまとめました。

対象

  • Azure Portal から Websites を立ててみたことがある人
  • visual studio 2013 が入っている人
  • プログラムからログを出力したい人

azure の右も左もわからなかった時に一番こまったこと

  • ログの出し方がわからなかった

Websiteの仮想マシンは基本的に使い捨てである

そのため、ログのような捨てられると困るものは、仮想マシン外のどこか に保存しておく必要がある

今となっては当たり前だよね~、と笑って言えるのですが右も左もわからなかった当時はそこを理解しておらず、ぽっきりと心が折れました。豆腐メンタルすぎますね。

この過去はお墓まで持って行こうかとも思っていたのですが、世の中にはきっと同じ思いをしている人が数人はいるだろう、ということで カレンダーのネタとして放出することにしました。

ログを出力するまでにやること

(azure-advent-calendar-20141203.azurewebsites.netdebugで発行するとする)
1. azure のポータルから構成タブをクリックする
構成.PNG
2.
アプリケーション診断のアプリケーション ログ記録(ファイル システム)をオンに、ログレベルを詳細に設定し、保存する
アプリケーションログを有効に.PNG
保存.PNG
3. 適当なコードで、ログを出力したい場所にSystem.Diagnostics.Trace.WriteLine("log message") を入れ、azureに発行する

    // 例えば web api の getメソッドに仕込むとこんな感じ
    public class LogOutputController : ApiController
    {
        public string GetMessage(string msg)
        {
            // ここでログを出力
            Trace.WriteLine("get:message:" + msg);
            return msg;
        }
    }

ログを確認するためにやること

azure上のTrace.WriteLine を通るような処理を何かしら実行する。
(今回の場合なら、Apiを叩く)
1. visual studio 2013 を立ち上げ、表示 -> サーバエクスプローラ をクリックし、サーバエクスプローラを表示させる
2. Azure/Websites/azure-advent-calendar-20141203.azurewebsites.net/Log Files/Application/[システムが生成したっぽい感じのファイル名].txt を開く(Trace.WriteLine の実行後すぐに作成されるわけではないので、ない場合数分待ってから再度確認する)
ログ.PNG
3. ログが出力されているので心が折れない
outputlog.PNG

まとめ

ログの出力ができずに心が折れた人たちが、もう一度azureを使ってみようという気持ちになってくれれば嬉しく思います。

kyanro@github
iphone アプリつくるわー といっていたはずなのに、そのコードを管理するgit自体にはまってしまった本末転倒好きのメモ帳です
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away