How to log the history of nodes viewed by a user, and report about them?
You can try using Recently Read module...


  Recently read allows site administrators to enable blocks displaying a
  history of recently read content (nodes) both to anonymous and
  authenticated users. For logged in users, each user has its own
  history. For anonymous users, the history is based on sessions. This
  module may be useful i.e. for displaying recently viewed products on
  the e-commerce site.