Use same call depth for Enabled, Info, Error#218
Merged
pohly merged 1 commit intogo-logr:masterfrom Sep 4, 2023
Merged
Conversation
Contributor
Author
|
I took yours and went the other way - "fix the bug". It is "breaking" in that way, but it is clearly a bug that whomever stumbled over should have reported. Ahem :) Thoughts? |
klog does stack unwinding in `LogSink.Enabled` to implement per-source code verbosity thresholds (`-vmodule`). This worked for `logger.Info` and `logger.Error` because the code was written such that it matches how logr is implemented (Logger.Info -> Logger.Enabled -> LogSink.Enabled). It did not work for direct calls (`if logger.Enabled`) because then the call chain is `Logger.Enabled -> LogSink.Enabled`. Now it uses the same depth (as passed to LogSink.Init) for all paths to Enabled.
6754e58 to
af7b2b7
Compare
Contributor
This has to be "NOTE: workarounds for this bug in implementations will need to be removed, and developers have to ensure that they combine recent logr only with implementations where that has been done" I'm okay with doing it this way around. It's the "cleaner" solution, but also the more intrusive one. |
pohly
approved these changes
Sep 4, 2023
Contributor
pohly
left a comment
There was a problem hiding this comment.
Tested with a modified klog, works. Let's use this solution.
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.
klog does stack unwinding in
LogSink.Enabledto implement per-source code verbosity thresholds (-vmodule). This worked forlogger.Infoandlogger.Errorbecause the code was written such that it matches how logr is implemented (Logger.Info -> Logger.Enabled -> LogSink.Enabled).It did not work for direct calls (
if logger.Enabled) because then the call chain isLogger.Enabled -> LogSink.Enabled. Now it uses the same depth (as passed to LogSink.Init) for all paths to Enabled.NOTE: callers who have worked around this bug will need to remove their workarounds.
Fixes #215
Alternative to #216