Uses the inner-most error (keeps grabbing
error.InnerError until there are no more InnerErrors).
Appends the exception class, message, and the class and method of the first stack frame if there is one.
Uses error information from the outermost error and all InnerError using a depth-first tree traversal. It also checks for AggregateExceptions and extracts error information from each it's inner exceptions.
Appends the exception class, message, and the class and method of each stack frame if there are any.
Same as Version 2, but includes the HTTP Method and Status Code from the Request and Response sections if they have been sent in.
Modified version of the Version 3 provider that strips GUIDs from exception messages
Same as Version 3, but uses the fileName for stack frames that do not have both a className and a methodName
Modified version of the Version 5 hasher that deals with pathological AggregateExceptions better, by checking to see if we've dealt with an InnerError of that type before. Useful for scenarios where a lot of AggregateExceptions are being thrown with varying numbers of the same type of error.
For instance, if you are awaiting 10 tasks and any number of them may fail with a NullReferenceException, then this hasher will only use the first NullReferenceException it sees.