fix: Use a noop with the same signature as the real one for make_filtering_bound_logger #401
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.
Summary
In my team's app, we're using
make_filtering_bound_logger
in our configuration, which is working fine except in one corner case. Another developer introduced a bug that was missed in review and testing, and it only appears at runtime when the log level is DEBUG (below INFO, our standard level):Obviously this is incorrect: there needs to be an
event
string in this call. However, the original_nop
method that gets returned has no checks for this missing argument, so their (admittedly poor) testing didn't turn up a problem at this line. Later when running at DEBUG level to research a different issue, the entire app failed to start up because of this call alone.Root cause for us was incorrect code from our teammate, but I figured it could use some help from structlog, which seems to be silently passing what should be an error.
This change operates identically, returning
None
when the log level is too high. Now, though, it returns a method with the same signature every time, so a logging call written incorrectly will always raise an exception for missing arguments, regardless of the configured log level.Pull Request Check List
typing_examples.py
.docs/api.rst
by hand.versionadded
,versionchanged
, ordeprecated
directives.Find the appropriate next version in our
__init__.py
file..rst
and.md
files is written using semantic newlines.