See the question and my original answer on StackOverflow

Talking about server side, if you're running on IIS, and you don't need absolute real time information, I recommend you use IIS logs.

There is nothing faster than this, as it's been optimized for performance since IIS 1.0

You can append your own information in these logs (HttpRequest.AppendToLog), they have a standard format, there is an API if you want to do custom things with it (but you can still use text parser if you prefer), and there are a lots of free tools, for example Microsoft Log Parser which can transfer data in a SQL database (among others).