summaryrefslogtreecommitdiff
path: root/bin.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin.py')
-rw-r--r--bin.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/bin.py b/bin.py
index 81a3192..f8ba99a 100644
--- a/bin.py
+++ b/bin.py
@@ -1,8 +1,10 @@
-import django
+import argparse
import logging
import os
import sys
+import django
+
def django_setup():
try:
@@ -22,7 +24,7 @@ def django_setup():
django.setup()
-def _init_logging():
+def _init_logging(level):
handler = logging.StreamHandler(stream=sys.stderr)
formatter = logging.Formatter(
'%(asctime)s %(levelname)-5s %(name)s: %(message)s',
@@ -30,11 +32,18 @@ def _init_logging():
handler.setFormatter(formatter)
l = logging.getLogger('')
l.addHandler(handler)
- l.setLevel(logging.INFO)
-_init_logging.called = False
+ l.setLevel(getattr(logging, level))
+
+
+class LoggingAction(argparse.Action):
+ def __call__(self, parser, namespace, value, option_string=None):
+ log = logging.getLogger()
+ log.setLevel(getattr(logging, value))
+ log.debug('logging level set to: %s', value)
-def get_logger(name):
- if not _init_logging.called:
- _init_logging.called = _init_logging()
- return logging.getLogger(name)
+def add_logging_arguments(parser, level='WARN'):
+ _init_logging(level)
+ parser.add_argument('--log', default=level, action=LoggingAction,
+ choices=('WARN', 'INFO', 'DEBUG'),
+ help='Logging level to use. Default=%(default)s')