mirror of https://github.com/python/cpython
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 ........
This commit is contained in:
parent
95f9c4cfb3
commit
7fd6068c3e
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue