summaryrefslogtreecommitdiff
path: root/Lib/logging
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2009-09-29 07:08:54 +0000
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2009-09-29 07:08:54 +0000
commit31a20bce393977536be068a1c765bdcd3aee936c (patch)
treefceab4902d0be67a5251d7684ec9c0973f5ff7ac /Lib/logging
parentf69a33c40830bb999f0736d0e3cb398b8baefe51 (diff)
downloadcpython-31a20bce393977536be068a1c765bdcd3aee936c.tar.gz
Issue #7014: logging: Improved IronPython 2.6 compatibility.
Diffstat (limited to 'Lib/logging')
-rw-r--r--Lib/logging/__init__.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index 9c72542c2b..092ebc3dad 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -282,11 +282,14 @@ class LogRecord:
else:
self.thread = None
self.threadName = None
- if logMultiprocessing:
- from multiprocessing import current_process
- self.processName = current_process().name
- else:
+ if not logMultiprocessing:
self.processName = None
+ else:
+ try:
+ from multiprocessing import current_process
+ self.processName = current_process().name
+ except ImportError:
+ self.processName = None
if logProcesses and hasattr(os, 'getpid'):
self.process = os.getpid()
else:
@@ -1125,7 +1128,11 @@ class Logger(Filterer):
Find the stack frame of the caller so that we can note the source
file name, line number and function name.
"""
- f = currentframe().f_back
+ f = currentframe()
+ #On some versions of IronPython, currentframe() returns None if
+ #IronPython isn't run with -X:Frames.
+ if f is not None:
+ f = f.f_back
rv = "(unknown file)", 0, "(unknown function)"
while hasattr(f, "f_code"):
co = f.f_code
@@ -1157,7 +1164,8 @@ class Logger(Filterer):
"""
if _srcfile:
#IronPython doesn't track Python frames, so findCaller throws an
- #exception. We trap it here so that IronPython can use logging.
+ #exception on some versions of IronPython. We trap it here so that
+ #IronPython can use logging.
try:
fn, lno, func = self.findCaller()
except ValueError: