Skip to content

Conversation

@aatifsyed
Copy link

The default and pretty formatters already include the source chain, I wanted the same for the JSON formatter.

The commit history evidences that JsonVisitor wasn'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

  1. https://262.ecma-international.org/#sec-ParseJSON

@aatifsyed aatifsyed requested review from a team, hawkw and hds as code owners December 19, 2025 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant