]> granicus.if.org Git - python/commitdiff
merge cl r68737 to py3k
authorJesse Noller <jnoller@gmail.com>
Sun, 18 Jan 2009 21:12:58 +0000 (21:12 +0000)
committerJesse Noller <jnoller@gmail.com>
Sun, 18 Jan 2009 21:12:58 +0000 (21:12 +0000)
Lib/logging/__init__.py
Lib/multiprocessing/util.py
Misc/NEWS

index cce6ea07981f8f10883f81f21381f9e8bbe66c49..ee4355474bf6a639e6c27ef1ed901695b60c1bb5 100644 (file)
@@ -98,6 +98,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:
index 3fe0175c327c8b5df9d0c0392cbe2af9b5324178..ac9d79e71d70f9bc2c23642877e9762e7e2b8045 100644 (file)
@@ -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
index b88de58e00f3fcf0f4cd7f3d24df40fd6dbbffd0..592e1a508cadec22b99a835a56b38628e7382161 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -132,6 +132,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #4301: Patch the logging module to add processName support, remove
+  _check_logger_class from multiprocessing.
+
 - Issue #3325: Remove python2.x try: except: imports for old cPickle from
   multiprocessing.