Catch situations where currentframe() returns None. See SF patch #1447410, this is a different implementation.

This commit is contained in:
Vinay Sajip 2006-03-15 12:45:07 +00:00
parent 5424ad8a2a
commit a2173a189a

View file

@ -1058,13 +1058,16 @@ class Logger(Filterer):
file name, line number and function name. file name, line number and function name.
""" """
f = currentframe().f_back f = currentframe().f_back
while 1: rv = "(unknown file)", 0, "(unknown function)"
while hasattr(f, "f_code"):
co = f.f_code co = f.f_code
filename = os.path.normcase(co.co_filename) filename = os.path.normcase(co.co_filename)
if filename == _srcfile: if filename == _srcfile:
f = f.f_back f = f.f_back
continue continue
return filename, f.f_lineno, co.co_name rv = (filename, f.f_lineno, co.co_name)
break
return rv
def makeRecord(self, name, level, fn, lno, msg, args, exc_info, func=None, extra=None): def makeRecord(self, name, level, fn, lno, msg, args, exc_info, func=None, extra=None):
""" """