How do I create a change log of the data entered?

How do I create a change log of the data entered?

I would like to create a log of the changes to the data entered in my application and who made the change.  Either I want to show the old and new value or, I want to record the old value when I input a new value.

The problem is, that when a record is created, if I try to use the On User Input function, the ID for the record is not known until the form is submitted so the log can not record the initial value along with the ID when the record is created.

When I try to use the On Update function, the new value for the field is recorded along with the updated value.  There is no way to capture the original value.

Does creator have some hidden log that I can access to just expose the raw data that is captured?

Thanks,
Ward