.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はこんなもんなのだろうか。。。