Log the original calling location, rather than the wrapper function #3257
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.
I've noticed that when Pelican logs warnings and errors, the file number and line number are always the same. It turns out we wrap the calling of warnings and errors (but not other logging levels) to allow warnings to be fatal, etc, but it is thus reporting the location of that wrapper function, rather than the "true" caller.
This isn't as helpful as it could be when trying to understand what is going on under the covers.
This is a small patch that allows the logger to show the "true" caller.
Before:
After:
The required feature was added in Python 3.8.
c.f. https://stackoverflow.com/a/55998744/4276230