diff --git a/CHANGES b/CHANGES index c13f4fc..98b8db4 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +0.6.2 patched + +* Added DEVSERVER_LOG_HANDLER setting + 0.3.1 * Fixed a bug when --wsgi-app was not provided. diff --git a/README.rst b/README.rst index 3f2459c..91a8ae3 100644 --- a/README.rst +++ b/README.rst @@ -93,6 +93,9 @@ DEVSERVER_MODULES = [] DEVSERVER_IGNORED_PREFIXES = ['/media', '/uploads'] A list of prefixes to surpress and skip process on. By default, ``ADMIN_MEDIA_PREFIX``, ``MEDIA_URL`` and ``STATIC_URL`` (for Django >= 1.3) will be ignored (assuming ``MEDIA_URL`` and ``STATIC_URL`` is relative):: +DEVSERVER_LOG_HANDLER + A name of logging handler. Default is None, if None logs are written to stdout + ------- Modules diff --git a/devserver/logger.py b/devserver/logger.py index 457e3b0..591cb0f 100644 --- a/devserver/logger.py +++ b/devserver/logger.py @@ -7,10 +7,18 @@ from django.core.management.color import color_style from django.utils import termcolors +from devserver import settings + _bash_colors = re.compile(r'\x1b\[[^m]*m') +if settings.DEVSERVER_LOG_HANDLER: + logger = logging.getLogger(settings.DEVSERVER_LOG_HANDLER) +else: + logger = None + + def strip_bash_colors(string): return _bash_colors.sub('', string) @@ -68,7 +76,10 @@ def log(self, message, *args, **kwargs): message = '%s %s' % (tpl, '\n'.join(new_message)) - sys.stdout.write(' ' + message + '\n') + if logger is None: + sys.stdout.write(' ' + message + '\n') + else: + logger.log(level, message) warn = lambda x, *a, **k: x.log(level=logging.WARN, *a, **k) info = lambda x, *a, **k: x.log(level=logging.INFO, *a, **k) diff --git a/devserver/settings.py b/devserver/settings.py index 6fdb794..6c4de55 100644 --- a/devserver/settings.py +++ b/devserver/settings.py @@ -25,3 +25,5 @@ DEVSERVER_SQL_MIN_DURATION = getattr(settings, 'DEVSERVER_SQL_MIN_DURATION', None) DEVSERVER_AUTO_PROFILE = getattr(settings, 'DEVSERVER_AUTO_PROFILE', False) + +DEVSERVER_LOG_HANDLER = getattr(settings, 'DEVSERVER_LOG_HANDLER', None)