Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

39 lignes
1.2 KiB

  1. # -*- coding: utf-8 -*-
  2. from __future__ import (absolute_import, division, print_function,
  3. unicode_literals)
  4. import logging
  5. from rq.utils import ColorizingStreamHandler
  6. from rq.defaults import (DEFAULT_LOGGING_FORMAT,
  7. DEFAULT_LOGGING_DATE_FORMAT)
  8. def setup_loghandlers(level=None, date_format=DEFAULT_LOGGING_DATE_FORMAT,
  9. log_format=DEFAULT_LOGGING_FORMAT):
  10. logger = logging.getLogger('rq.worker')
  11. if not _has_effective_handler(logger):
  12. formatter = logging.Formatter(fmt=log_format, datefmt=date_format)
  13. handler = ColorizingStreamHandler()
  14. handler.setFormatter(formatter)
  15. logger.addHandler(handler)
  16. if level is not None:
  17. logger.setLevel(level)
  18. def _has_effective_handler(logger):
  19. """
  20. Checks if a logger has a handler that will catch its messages in its logger hierarchy.
  21. :param `logging.Logger` logger: The logger to be checked.
  22. :return: True if a handler is found for the logger, False otherwise.
  23. :rtype: bool
  24. """
  25. while True:
  26. if logger.handlers:
  27. return True
  28. if not logger.parent:
  29. return False
  30. logger = logger.parent