[Python-checkins] r70348 - in python/branches/release26-maint: Lib/logging/__init__.py Lib/multiprocessing/util.py Misc/NEWS

benjamin.peterson python-checkins at python.org
Fri Mar 13 21:48:11 CET 2009


Author: benjamin.peterson
Date: Fri Mar 13 21:48:10 2009
New Revision: 70348

Log:
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
........


Modified:
   python/branches/release26-maint/   (props changed)
   python/branches/release26-maint/Lib/logging/__init__.py
   python/branches/release26-maint/Lib/multiprocessing/util.py
   python/branches/release26-maint/Misc/NEWS

Modified: python/branches/release26-maint/Lib/logging/__init__.py
==============================================================================
--- python/branches/release26-maint/Lib/logging/__init__.py	(original)
+++ python/branches/release26-maint/Lib/logging/__init__.py	Fri Mar 13 21:48:10 2009
@@ -97,6 +97,11 @@
 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
 #
 logProcesses = 1
@@ -263,6 +268,11 @@
         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:

Modified: python/branches/release26-maint/Lib/multiprocessing/util.py
==============================================================================
--- python/branches/release26-maint/Lib/multiprocessing/util.py	(original)
+++ python/branches/release26-maint/Lib/multiprocessing/util.py	Fri Mar 13 21:48:10 2009
@@ -69,34 +69,10 @@
             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

Modified: python/branches/release26-maint/Misc/NEWS
==============================================================================
--- python/branches/release26-maint/Misc/NEWS	(original)
+++ python/branches/release26-maint/Misc/NEWS	Fri Mar 13 21:48:10 2009
@@ -658,6 +658,9 @@
 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.


More information about the Python-checkins mailing list