Peter, The solution I offered above was for if you wanted to log everything that happened even if the user rolled it back before pressing save. So in my example, it would have logged the data twice.
What you are looking for is something like audit logging the changes when the user saves the record. The way to do this is store a master copy of the data. It can be in memory or wherever you got the original record from (file, database, etc.) Then when the user presses save, you compare the original values with the current values.