#5287: Add exception handling around findCaller() call to help out IronPython.
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index 8773225..e7eb51d 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -1128,7 +1128,12 @@
all the handlers of this logger to handle the record.
"""
if _srcfile:
- fn, lno, func = self.findCaller()
+ #IronPython doesn't track Python frames, so findCaller throws an
+ #exception. We trap it here so that IronPython can use logging.
+ try:
+ fn, lno, func = self.findCaller()
+ except ValueError:
+ fn, lno, func = "(unknown file)", 0, "(unknown function)"
else:
fn, lno, func = "(unknown file)", 0, "(unknown function)"
if exc_info:
diff --git a/Misc/NEWS b/Misc/NEWS
index aaa702b..6a65384 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -161,16 +161,18 @@
Library
-------
+- Issue #5287: Add exception handling around findCaller() call to help out
+ IronPython.
- Issue #5282: Fixed mmap resize on 32bit windows and unix. When offset > 0,
The file was resized to wrong size.
- Issue #5292: Fixed mmap crash on its boundary access m[len(m)].
-- Issue #2279: distutils.sdist.add_defaults now add files
+- Issue #2279: distutils.sdist.add_defaults now add files
from the package_data and the data_files metadata.
-- Issue #5257: refactored all tests in distutils, so they use
+- Issue #5257: refactored all tests in distutils, so they use
support.TempdirManager, to avoid writing in the tests directory.
- Issue #4524: distutils build_script command failed with --with-suffix=3.