feat: default JSON subscriber shows error.sources #3443
+88
−0
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.
The default and pretty formatters already include the source chain, I wanted the same for the JSON formatter.
The commit history evidences that
JsonVisitorwasn't the right place for this change - not sure where that's used, but it may be worth unreverting those commits for consistency.There's a bit of a hazard if a user was already doing error.sources at the call site in anticipation of using JSON subscribers.
Interpreting JSON, last key typically wins1
info!(error = &dyn Error, error.sources = ...). User won't notice.info!(error.sources = ..., error = &dyn Error). User will get a JSON Array instead of a JSON String, so their log reader should hopefully fail loudly. I think this is an odd phrasing, so probably fine?While I was poking around I saw some inconsistency in stripping
r#from field names - not sure if there's a bug there.Footnotes
https://262.ecma-international.org/#sec-ParseJSON ↩