pipeline logging: add cause chain when logging #16677
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Release notes
What does this PR do?
Adds a helper to normalize an exception and its cause chain for logging, and uses that helper to add context whenever logging an exception from the pipeline implementation
Why is it important/What is the impact to the user?
Often an exception is caught and a wrapper of that exception is re-thrown; logging only the outermost exception can make it difficult to chase down the root cause.
Checklist
[ ] I have made corresponding changes to the documentation[ ] I have made corresponding change to the default configuration files (and/or docker env variables)[ ] I have added tests that prove my fix is effective or that my feature worksLogs
Before:
Log entries context contains:
error
: a string with the exception's messageexception
: a string with the exception's classstacktrace
: a string with the exception's newline-concatenated backtraceAfter:
Log entries context contains:
error
: a string with the exception's messageexception
: a string with the exception's classstacktrace
: a string with the exception's newline-concatenated backtracecause
(optional): a hash containing the exception's cause in the same format:error
: a string with the cause's messageexception
: a string with the cause classstacktrace
: a string with the cause newline-concatenated backtracecause
(optional): a hash containing the cause's cause in the same format