To accurately track a person's click path you need more than logs. Log information cannot differentiate between users sharing a proxy, or different users that have been sequentially assigned the same communal IP adddress, like a dialup ISP user.
You can assign a session ID to a user and track that ID number. Super Search for "maintaining state" or some such.
To really know how long someone is viewing a page you would have to use a client refresh at timed intervals. For instance, you could have some javascript that updates a dummy one-pixel image at regular intervals. The refresh would include that users unique ID, thus you just sum the times between each refresh.