The simplest template in my arsenal is the one you’d find most in the code.
I discovered early on it was a good idea to send the (offending) Procedure Name through to the error logging.

_AddError(’MyAwesomeProcedure’,'Stupid Error Subject’,'Stupid Error Body’);

After too long, I decided to do something about always having to string type as a parameter […]