diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2009-09-29 07:08:54 +0000 |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2009-09-29 07:08:54 +0000 |
commit | 31a20bce393977536be068a1c765bdcd3aee936c (patch) | |
tree | fceab4902d0be67a5251d7684ec9c0973f5ff7ac /Lib/logging | |
parent | f69a33c40830bb999f0736d0e3cb398b8baefe51 (diff) | |
download | cpython-31a20bce393977536be068a1c765bdcd3aee936c.tar.gz |
Issue #7014: logging: Improved IronPython 2.6 compatibility.
Diffstat (limited to 'Lib/logging')
-rw-r--r-- | Lib/logging/__init__.py | 20 |
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: |