root / env / lib / python2.7 / site-packages / south / logger.py @ d1a4905f
History | View | Annotate | Download (1.15 KB)
1 | d1a4905f | officers | 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() |