logger.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. def get_logger():
  9. "Attach a file handler to the logger if there isn't one already."
  10. debug_on = getattr(settings, "SOUTH_LOGGING_ON", False)
  11. logging_file = getattr(settings, "SOUTH_LOGGING_FILE", False)
  12. if debug_on:
  13. if logging_file:
  14. if len(_logger.handlers) < 2:
  15. _logger.addHandler(logging.FileHandler(logging_file))
  16. _logger.setLevel(logging.DEBUG)
  17. else:
  18. raise IOError("SOUTH_LOGGING_ON is True. You also need a SOUTH_LOGGING_FILE setting.")
  19. return _logger
  20. def close_logger():
  21. "Closes the logger handler for the file, so we can remove the file after a test."
  22. for handler in _logger.handlers:
  23. _logger.removeHandler(handler)
  24. if isinstance(handler, logging.FileHandler):
  25. handler.close()
  26. def init_logger():
  27. "Initialize the south logger"
  28. logger = logging.getLogger("south")
  29. logger.addHandler(NullHandler())
  30. return logger
  31. _logger = init_logger()