I'm developing a web application which uses MS SQL for various data: including users, user accounts, user licenses, license prices, invoices.
I need to log users' real-time usage of the system, and use that for monthly billing: e.g. log whenever a user gets a specific page/URL and bill users at the end of the month based on the number of pages they fetched.
Should I write these log events into a table in my MS SQL database ?
Should I write these log events into a non-SQL append-only log file?
Should I write these log events into a different log file for each user?
This is not an especially high-volume web site: for example, a maximum of 10,000 users each doing an average of 5 loggable events/day => 50,000 events / day = 30 events / minute = 18,000,000 events / year.
I'm asking because either option seems viable and I don't see whether one has a clear advantage.
The data associated with a billable event is simple, e.g.:
- User ID (foreign key relationship to the Users table in SQL)
- Date and time
- URL of the billable page