logger.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import sys
  2. import logging
  3. from django.conf import settings
  4. # Create a dummy handler to use for now.
  5. class NullHandler(logging.Handler):
  6. def emit(self, record):
  7. pass
  8. _logger = logging.getLogger("south")
  9. _logger.addHandler(NullHandler())
  10. _logger.setLevel(logging.DEBUG)
  11. def get_logger():
  12. "Attach a file handler to the logger if there isn't one already."
  13. debug_on = getattr(settings, "SOUTH_LOGGING_ON", False)
  14. logging_file = getattr(settings, "SOUTH_LOGGING_FILE", False)
  15. if debug_on:
  16. if logging_file:
  17. if len(_logger.handlers) < 2:
  18. _logger.addHandler(logging.FileHandler(logging_file))
  19. _logger.setLevel(logging.DEBUG)
  20. else:
  21. raise IOError, "SOUTH_LOGGING_ON is True. You also need a SOUTH_LOGGING_FILE setting."
  22. return _logger
  23. def close_logger():
  24. "Closes the logger handler for the file, so we can remove the file after a test."
  25. for handler in _logger.handlers:
  26. _logger.removeHandler(handler)
  27. if isinstance(handler, logging.FileHandler):
  28. handler.close()