Commits

Andrew Godwin  committed 2835d25

Fix #386 (too many file handlers)

  • Participants
  • Parent commits 5a708ca

Comments (0)

Files changed (1)

File south/logger.py

 import logging
 from django.conf import settings
 
+# Create a dummy handler to use for now.
 class NullHandler(logging.Handler):
     def emit(self, record):
         pass
 
-h = NullHandler()
-
 _logger = logging.getLogger("south")
-_logger.addHandler(h)
+_logger.addHandler(NullHandler())
 _logger.setLevel(logging.DEBUG)
-# TODO: Add a log formatter?
 
 def get_logger():
+    "Attach a file handler to the logger if there isn't one already."
     debug_on = getattr(settings, "SOUTH_LOGGING_ON", False)
     logging_file = getattr(settings, "SOUTH_LOGGING_FILE", False)
     
     if debug_on:
-        if logging_file:
-            _logger.addHandler( logging.FileHandler(logging_file) )
+        if logging_file and len(_logger.handlers) < 2:
+            _logger.addHandler(logging.FileHandler(logging_file))
             _logger.setLevel(logging.DEBUG)
         else:
             raise IOError, "SOUTH_LOGGING_ON is True. You also need a SOUTH_LOGGING_FILE setting."
+    
     return _logger
 
 def close_logger():