Yeah that link doesn'tt really help, and the idea you had about saving the Log to an object, or maybe there is a property on rows in the log that let you disable re-enable them.
The problem is there is a master catch statement outside of the script where the Error occurs, that makes a decision on if the Error needs to be logged, or if it was expected to happen such as in negative testing. The reason I don't want to log in the catch statement is then I lose the stack trace to where the Error actually happened. Right now I am just attaching the script name to an Error object, and printing that in text form when I log the Error in the master catch. The stack trace for every error therefore always points to the exact same spot.
But maybe there is no real solution for this.