Project

General

Profile

Statistics
| Branch: | Revision:

root / env / lib / python2.7 / site-packages / south / logger.py @ d1a4905f

History | View | Annotate | Download (1.15 KB)

1
import sys
2
import logging
3
from django.conf import settings
4

    
5
# Create a dummy handler to use for now.
6
class NullHandler(logging.Handler):
7
    def emit(self, record):
8
        pass
9

    
10
def get_logger():
11
    "Attach a file handler to the logger if there isn't one already."
12
    debug_on = getattr(settings, "SOUTH_LOGGING_ON", False)
13
    logging_file = getattr(settings, "SOUTH_LOGGING_FILE", False)
14
    
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
    
23
    return _logger
24

    
25
def close_logger():
26
    "Closes the logger handler for the file, so we can remove the file after a test."
27
    for handler in _logger.handlers:
28
        _logger.removeHandler(handler)
29
        if isinstance(handler, logging.FileHandler):
30
            handler.close()
31

    
32
def init_logger():
33
    "Initialize the south logger"
34
    logger = logging.getLogger("south")
35
    logger.addHandler(NullHandler())
36
    return logger
37

    
38
_logger = init_logger()