.net MVCで独自にアクセスログを取りたくなった。どこに入れるのが正解なのかよくわからない。 何となくGlobal.asaxにリクエスト来たときに書けばいいのかと思い、↓でとってみる。

public class MvcApplication : System.Web.HttpApplication
{
	protected void Application_Start()
	{
	    //アプリの起動時の処理
	}
        //↓これで書く
	protected void Application_OnBeginRequest(object sender, EventArgs e)
	{
	    // HTTP リクエスト処理開始時の処理
	    WriteLog();//ログをはく
	}
}

「Application_OnBeginRequest()」だとリクエスト来た時に全部拾えるからここがいいかなーと思ったけど、 User.Identityとゆーか認証の状態がとれかった。まぁ当たり前ですか。。。

認証後の状態はいつかなーで見てたら⇒でした。「Application_OnAuthenticateRequest()」これの中に書けばUser.Identityとかちゃんと取れる。ログイン前はNullってるけども。

リクエストのライフサイクル的な話はココで見れる。いろんなブログとかもあるけど、やっぱまず、MSDN見たほうがいいと思う。

で、とりあえず、アクセスログっぽいものはこれで作れたんだけど、なんとなく、ほんとにココでいいのか自信が持てない。動作上は特に問題無いよう思えるんだけど。。。

あと、ログ取ってみて思ったけど、やっぱSignalRはすげーコネクション使うのね。なんかこんなに接続しちゃってよいのだろーかと不安になるくらいつなぐ。最近のWebはこんなもんなのだろうか。。。