2011-12-14 20 views
5

こんにちは私はいくつかのアドバイスが必要です。asp.net mvcサイトでの統計情報の収集?

Googleアナリティクスなどのサードパーティのツールを使用せずに、自分のサイトでのユーザーの行動を追跡する方法が必要です。

私のサイトに来るすべてのリクエストは、ユーザーの情報を収集してDBに書き込む非同期タスクを起動する必要があります。これを行う最善の方法は何ですか?

非同期のhttphandlerを書き込もうとしましたが、動作できませんでした。それは各要求(css jpgのようなすべてのresourseファイル用)に対して複数回ヒットします。

+1

これは過去3年間よく私に役立っています。 http://codereview.stackexchange.com/questions/4659/optimizing-a-fire-and-forget-page-tracker私はそれを速くする少し助けを得るために投稿しましたが、それは200万行以上で3年間働いていますこれまでの表ではより多くなるだろうが、私は時々剪定する。 –

+0

Timさんに感謝します。私はカスタムフィルターを使用して終了しました。それは私がglobal.asaxファイルに登録したものです。 – usermon

答えて

2

私は現在log4netを使って同様のことをしています。

セットアップは私のlog4netは非常にこれに似てarticleでした。その後、コントローラにアタッチできるActionFilterAttributeを継承するLogger Attributeを作成できます。私は個人的にLogger属性を適用したベースコントローラを持っています。

あなたの属性では、OnActionExecutingを無効にし、現在実行中のアクションに関するすべての情報をlog4netロガーで必要なログに記録します。ちょうどあなたがいくつかのロギングを行うために一点でそれにフックしているだけで、あなたはmvc配管のいずれかを台無しにしたくないbase.OnActionExecuting(filtercontext)を含めることを確認してください。

関連する問題