issue 4301: patch logging to add processName, remove the old _check_logger_class code

This commit is contained in:
Jesse Noller 2009-01-18 21:04:36 +00:00
parent fe11f4d524
commit 438195fc11
3 changed files with 13 additions and 24 deletions

View File

@ -99,6 +99,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
# #
@ -266,6 +271,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:

View File

@ -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

View File

@ -596,6 +596,9 @@ Library
Extension Modules 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 - Issue #2975: When compiling several extension modules with Visual Studio 2008
from the same python interpreter, some environment variables would grow from the same python interpreter, some environment variables would grow
without limit. without limit.