3rd party logging tools is also the way to go. Another way is some
complex solutions like 'desktop authority' (
http://www.scriptlogic.com).
I'm familiar with this utility - we use it in our environment.
It has a very powerful logging and reporting abilities. DA uses sql
database for collecting and storing such kind of information.
Creating a reports it's quite an easy task - you can choose from
predefined ones or create your own with necessary parameters.
For example, most of all we use reports about users logging (date,
time, domain, computer, user, event type and etc).