forked from github/pelican
Warning/error logging: be explicit in how the stacklevel variable is handled
This commit is contained in:
parent
f0beb81a97
commit
f1f2ceccc7
1 changed files with 30 additions and 10 deletions
|
|
@ -85,19 +85,39 @@ class FatalLogger(LimitLogger):
|
|||
warnings_fatal = False
|
||||
errors_fatal = False
|
||||
|
||||
# adding `stacklevel=2` means that the displayed filename and line number
|
||||
# will match the "original" calling location, rather than the wrapper here
|
||||
def warning(self, *args, **kwargs):
|
||||
if "stacklevel" not in kwargs.keys():
|
||||
kwargs["stacklevel"] = 2
|
||||
super().warning(*args, **kwargs)
|
||||
def warning(self, *args, stacklevel=1, **kwargs):
|
||||
"""
|
||||
Displays a logging warning.
|
||||
|
||||
Wrapping it here allows Pelican to filter warnings, and conditionally
|
||||
make warnings fatal.
|
||||
|
||||
Args:
|
||||
stacklevel (int): the stacklevel that would be used to display the
|
||||
calling location, except for this function. Adjusting the
|
||||
stacklevel allows you to see the "true" calling location of the
|
||||
warning, rather than this wrapper location.
|
||||
"""
|
||||
stacklevel += 1
|
||||
super().warning(*args, stacklevel=stacklevel, **kwargs)
|
||||
if FatalLogger.warnings_fatal:
|
||||
raise RuntimeError("Warning encountered")
|
||||
|
||||
def error(self, *args, **kwargs):
|
||||
if "stacklevel" not in kwargs.keys():
|
||||
kwargs["stacklevel"] = 2
|
||||
super().error(*args, **kwargs)
|
||||
def error(self, *args, stacklevel=1, **kwargs):
|
||||
"""
|
||||
Displays a logging error.
|
||||
|
||||
Wrapping it here allows Pelican to filter errors, and conditionally
|
||||
make errors non-fatal.
|
||||
|
||||
Args:
|
||||
stacklevel (int): the stacklevel that would be used to display the
|
||||
calling location, except for this function. Adjusting the
|
||||
stacklevel allows you to see the "true" calling location of the
|
||||
error, rather than this wrapper location.
|
||||
"""
|
||||
stacklevel += 1
|
||||
super().error(*args, stacklevel=stacklevel, **kwargs)
|
||||
if FatalLogger.errors_fatal:
|
||||
raise RuntimeError("Error encountered")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue