|
@@ -1,47 +0,0 @@
|
|
|
-# -*- coding: utf-8 -*-
|
|
|
-"""
|
|
|
- celery.utils.patch
|
|
|
- ~~~~~~~~~~~~~~~~~~
|
|
|
-
|
|
|
- Monkey-patch to ensure loggers are process aware.
|
|
|
-
|
|
|
- :copyright: (c) 2009 - 2012 by Ask Solem.
|
|
|
- :license: BSD, see LICENSE for more details.
|
|
|
-
|
|
|
-"""
|
|
|
-from __future__ import absolute_import
|
|
|
-
|
|
|
-import logging
|
|
|
-
|
|
|
-_process_aware = False
|
|
|
-
|
|
|
-
|
|
|
-def _patch_logger_class():
|
|
|
- """Make sure process name is recorded when loggers are used."""
|
|
|
- from billiard import current_process
|
|
|
- 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)
|
|
|
- if current_process:
|
|
|
- record.processName = current_process()._name
|
|
|
- else:
|
|
|
- record.processName = ""
|
|
|
- return record
|
|
|
- logging.setLoggerClass(ProcessAwareLogger)
|
|
|
- finally:
|
|
|
- logging._releaseLock()
|
|
|
-
|
|
|
-
|
|
|
-def ensure_process_aware_logger():
|
|
|
- global _process_aware
|
|
|
-
|
|
|
- if not _process_aware:
|
|
|
- _patch_logger_class()
|
|
|
- _process_aware = True
|