1日目、2日目とレベルの高い話が続いていますが、3日めはがっつりとレベルを落としていきます!
ということで、azure を利用し始めた時に、自分の中で一番困ったことをまとめました。
対象
- Azure Portal から Websites を立ててみたことがある人
- visual studio 2013 が入っている人
- プログラムからログを出力したい人
azure の右も左もわからなかった時に一番こまったこと
- ログの出し方がわからなかった
Websiteの仮想マシンは基本的に使い捨てである
そのため、ログのような捨てられると困るものは、仮想マシン外のどこか
に保存しておく必要がある
今となっては当たり前だよね~、と笑って言えるのですが右も左もわからなかった当時はそこを理解しておらず、ぽっきりと心が折れました。豆腐メンタルすぎますね。
この過去はお墓まで持って行こうかとも思っていたのですが、世の中にはきっと同じ思いをしている人が数人はいるだろう、ということで カレンダーのネタとして放出することにしました。
ログを出力するまでにやること
(azure-advent-calendar-20141203.azurewebsites.net
にdebug
で発行するとする)
アプリケーション診断のアプリケーション ログ記録(ファイル システム)をオン
に、ログレベルを詳細
に設定し、保存する
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を叩く)
- visual studio 2013 を立ち上げ、
表示
->サーバエクスプローラ
をクリックし、サーバエクスプローラを表示させる -
Azure/Websites/azure-advent-calendar-20141203.azurewebsites.net/Log Files/Application/[システムが生成したっぽい感じのファイル名].txt
を開く(Trace.WriteLine の実行後すぐに作成されるわけではないので、ない場合数分待ってから再度確認する)
- ログが出力されているので心が折れない
まとめ
ログの出力ができずに心が折れた人たちが、もう一度azureを使ってみよう
という気持ちになってくれれば嬉しく思います。