Skip missing custom ConsoleWriter parts instead of printing %!s(<nil>) - #776
Open
arpitjain099 wants to merge 1 commit into
Open
Skip missing custom ConsoleWriter parts instead of printing %!s(<nil>)#776arpitjain099 wants to merge 1 commit into
arpitjain099 wants to merge 1 commit into
Conversation
A part name listed in PartsOrder but absent from the event (for example a request_id logged only on the request-scoped logger, not the global one) fell through to consoleDefaultFormatFieldValue, which formats a nil value as the literal "%!s(<nil>)". Return early for a missing custom part when no custom field-value formatter is set so nothing is written. Fixes rs#710 Signed-off-by: Arpit Jain <arpitjain099@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #710. When a custom name in PartsOrder (like request_id) isn't present in the event, for instance on the global logger where the field was only set on a request-scoped logger, writePart falls through to consoleDefaultFormatFieldValue and formats the nil value as the literal "%!s()", which then gets written to the line. This returns early for a missing custom part when no custom field-value formatter is configured, so the part is skipped rather than printing garbage.
I added a ConsoleWriter test that logs with a request_id in PartsOrder but absent from the event and asserts the "%!s()" no longer leaks. It fails before the change and passes after, and the full go test ./... suite, go vet, and go fmt are all clean. Thanks for taking a look.