feat: log inner error in additon to the context #4128
Closed
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.
Summary of changes
anyhow::Context
provides a convenient way of wrapping the error with some context text, and the inner text is present in stack trace when the final error is unwrapped. However, In a long-running service like forest, most of the errors are logged withtracing
instead of being unwrapped. In this case, unless the debug formatting("{error:?}"
) is specified, the inner errors which are quite helpful for troubleshooting in many cases are not present in the log text. To fix the issue, we could.map_err
.This PR tries to implement the 2nd solution above.
Changes introduced in this pull request:
crate::error::Context2
as a drop-in replacement ofanyhow::Context
Reference issue to close (if applicable)
Closes
Other information and links
Change checklist