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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Static linter for structured logging #213
Add Static linter for structured logging #213
Changes from all commits
babec9c
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is taking a shortcut. Was that intentional because the alternative is too complex?
What we want to compare against is
k8s.io/klog/v2
, not just the name that the package was imported under. As it stands now, the following code will not be recognized as using klog.Info:It must be possible to lookup the selector, but after staring at the
analysis.Pass
for a while I still haven't figured out how. Any ideas?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I found a solution. This here works and also covers other cases that weren't handled before, like
if klogV := klog.V(1); klogV.Enabled() { klogV.Info("should not be used") }
:I'm currently collecting some improvements of logcheck for contextual logging and will include this in that patch set.
IMHO it's not important enough to be fixed right away. Import renaming was done in some projects that migrated from glog, but seems less common nowadays.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no
FatalS
so what would be recommend to use as an alternative?Edit: never mind, I guess the recommend approach is to use
ErrorS
:)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right it will be replaced by
ErrorS
, here is the guidelinehttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#replacing-fatal-calls
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fatal* must be replaced with ErrorS + os.Exit() or this would be a change in behavior.
the migrate guide is inaccurate in this regard.
EDIT: actually NVM it does mention it:
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#replacing-fatal-calls