Commit 7fd6068c authored by Benjamin Peterson's avatar Benjamin Peterson

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
........
parent 95f9c4cf
...@@ -96,6 +96,11 @@ raiseExceptions = 1 ...@@ -96,6 +96,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
......
...@@ -658,6 +658,9 @@ Library ...@@ -658,6 +658,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.
......
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