Kaydet (Commit) 9a0fc97b authored tarafından Jesse Noller's avatar Jesse Noller

merge cl r68737 to py3k

üst e1cdfd78
...@@ -98,6 +98,11 @@ raiseExceptions = 1 ...@@ -98,6 +98,11 @@ raiseExceptions = 1
# #
logThreads = 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 # If you don't want process information in the log, set this to zero
# #
...@@ -263,6 +268,11 @@ class LogRecord: ...@@ -263,6 +268,11 @@ class LogRecord:
else: else:
self.thread = None self.thread = None
self.threadName = 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'): if logProcesses and hasattr(os, 'getpid'):
self.process = os.getpid() self.process = os.getpid()
else: else:
......
...@@ -69,34 +69,10 @@ def get_logger(): ...@@ -69,34 +69,10 @@ def get_logger():
atexit._exithandlers.remove((_exit_function, (), {})) atexit._exithandlers.remove((_exit_function, (), {}))
atexit._exithandlers.append((_exit_function, (), {})) atexit._exithandlers.append((_exit_function, (), {}))
_check_logger_class()
_logger = logging.getLogger(LOGGER_NAME) _logger = logging.getLogger(LOGGER_NAME)
return _logger 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): def log_to_stderr(level=None):
''' '''
Turn on logging and add a handler which prints to stderr Turn on logging and add a handler which prints to stderr
......
...@@ -132,6 +132,9 @@ Core and Builtins ...@@ -132,6 +132,9 @@ Core and Builtins
Library 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 - Issue #3325: Remove python2.x try: except: imports for old cPickle from
multiprocessing. multiprocessing.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment