User Field History Tracking implement the same idea as I said earlier, with a trigger in user object and write the changes into a custom object. Once you installed this package from AppExchange, you will notice new app "User Field History Tracking", you just need to set fields need to track, either standard or custom field from User Field History Setup tab.
Select one or more fields to track field history. Once you have completed your selections, click "Save Settings". The selected field(s) will then be tracked from that point forward. If you remove a field(s) from history tracking and click "Save Settings", field history will no longer be tracked. Any previous history for the removed field(s) will still be available as User Field History records. You may come back to this page at any time to update the fields selected for history tracking.
All changes happened after you set field to track will be available as new record in User Field History object. For here you can see, who change what, what is the previous and new value, when is the change happened.
Type: AppExchange (Managed Package); Private listing
Publisher: Stratus Consulting Group, LLC
Blog last updated: 19 Apr 2016