From 7fd6068c3e341f4e34bab2102ab2a056484d7c03 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Fri, 13 Mar 2009 20:48:10 +0000 Subject: [PATCH] Merged revisions 68737 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r68737 | jesse.noller | 2009-01-18 15:04:36 -0600 (Sun, 18 Jan 2009) | 1 line issue 4301: patch logging to add processName, remove the old _check_logger_class code ........ --- Lib/logging/__init__.py | 10 ++++++++++ Lib/multiprocessing/util.py | 24 ------------------------ Misc/NEWS | 3 +++ 3 files changed, 13 insertions(+), 24 deletions(-) diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index 90fe5816719..8c2a38c496c 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -96,6 +96,11 @@ raiseExceptions = 1 # logThreads = 1 +# +# If you don't want multiprocessing information in the log, set this to zero +# +logMultiprocessing = 1 + # # If you don't want process information in the log, set this to zero # @@ -263,6 +268,11 @@ class LogRecord: else: self.thread = None self.threadName = None + if logMultiprocessing: + from multiprocessing import current_process + self.processName = current_process().name + else: + self.processName = None if logProcesses and hasattr(os, 'getpid'): self.process = os.getpid() else: diff --git a/Lib/multiprocessing/util.py b/Lib/multiprocessing/util.py index 7d53512725c..2e7a2ac2067 100644 --- a/Lib/multiprocessing/util.py +++ b/Lib/multiprocessing/util.py @@ -69,34 +69,10 @@ def get_logger(): atexit._exithandlers.remove((_exit_function, (), {})) atexit._exithandlers.append((_exit_function, (), {})) - _check_logger_class() _logger = logging.getLogger(LOGGER_NAME) return _logger -def _check_logger_class(): - ''' - Make sure process name is recorded when loggers are used - ''' - # XXX This function is unnecessary once logging is patched - import logging - if hasattr(logging, 'multiprocessing'): - return - - logging._acquireLock() - try: - OldLoggerClass = logging.getLoggerClass() - if not getattr(OldLoggerClass, '_process_aware', False): - class ProcessAwareLogger(OldLoggerClass): - _process_aware = True - def makeRecord(self, *args, **kwds): - record = OldLoggerClass.makeRecord(self, *args, **kwds) - record.processName = current_process()._name - return record - logging.setLoggerClass(ProcessAwareLogger) - finally: - logging._releaseLock() - def log_to_stderr(level=None): ''' Turn on logging and add a handler which prints to stderr diff --git a/Misc/NEWS b/Misc/NEWS index 8d6b108d01c..8e0ba6b6f73 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -658,6 +658,9 @@ Library Extension Modules ----------------- +- Issue #4301: Patch the logging module to add processName support, remove + _check_logger_class from multiprocessing. + - Issue #2975: When compiling several extension modules with Visual Studio 2008 from the same python interpreter, some environment variables would grow without limit.