Setpoint logging/auditing

I’m wanting to log changes to process variables and what user changed them. I’m sure this is a pretty common problem that others have already solved. Does anyone have any tips/pitfalls toward doing this? Is this something that the built-in auditing can do? Should I use a transaction group?

Thanks.

Those were some good responses and I appreciate the feedback but it looks like auditing is what I am looking for. It would appear all tag writes are logged as audit events, so I can just query the audit_events table for the tags I want an update history for.