patch.py 891 B

1234567891011121314151617181920212223242526272829
  1. import logging
  2. import sys
  3. def _check_logger_class():
  4. """Make sure process name is recorded when loggers are used."""
  5. from multiprocessing.process import current_process
  6. logging._acquireLock()
  7. try:
  8. OldLoggerClass = logging.getLoggerClass()
  9. if not getattr(OldLoggerClass, '_process_aware', False):
  10. class ProcessAwareLogger(OldLoggerClass):
  11. _process_aware = True
  12. def makeRecord(self, *args, **kwds):
  13. record = OldLoggerClass.makeRecord(self, *args, **kwds)
  14. record.processName = current_process()._name
  15. return record
  16. logging.setLoggerClass(ProcessAwareLogger)
  17. finally:
  18. logging._releaseLock()
  19. def monkeypatch():
  20. major, minor = sys.version_info[:2]
  21. if major == 2 and minor < 6: # python < 2.6
  22. _check_logger_class()