aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Finucane <stephen@that.guru>2018-09-19 19:50:55 +0100
committerStephen Finucane <stephen@that.guru>2018-09-20 22:06:14 +0100
commit133091da0a527ef8fe89aea38c4855973b48d5f1 (patch)
treebaa311c3c94a5b7f97414b1714a1ed767df98ec3
parentb832aa43a8e29e52359dd51c17f77d09dae1fec4 (diff)
downloadpatchwork-133091da0a527ef8fe89aea38c4855973b48d5f1.tar
patchwork-133091da0a527ef8fe89aea38c4855973b48d5f1.tar.gz
parsearchive: Fix logging
We should use a counter normally, avoid using the counter and emit logs when more detailed output is requested, and emit nothing when no output is requested. In addition, the default logging level for the parser module is set to 'WARNING' to make it less chatty. Signed-off-by: Stephen Finucane <stephen@that.guru>
-rw-r--r--patchwork/management/commands/parsearchive.py26
-rw-r--r--patchwork/parser.py2
-rw-r--r--patchwork/settings/base.py6
3 files changed, 26 insertions, 8 deletions
diff --git a/patchwork/management/commands/parsearchive.py b/patchwork/management/commands/parsearchive.py
index 96f64fa..90bb6c0 100644
--- a/patchwork/management/commands/parsearchive.py
+++ b/patchwork/management/commands/parsearchive.py
@@ -37,10 +37,24 @@ class Command(BaseCommand):
dropped = 0
errors = 0
+ verbosity = int(options['verbosity'])
+ if not verbosity:
+ level = logging.CRITICAL
+ elif verbosity == 1:
+ level = logging.ERROR
+ elif verbosity == 2:
+ level = logging.INFO
+ else: # verbosity == 3
+ level = logging.DEBUG
+
+ if level:
+ logger.setLevel(level)
+ logging.getLogger('patchwork.parser').setLevel(level)
+
# TODO(stephenfin): Support passing via stdin
path = args and args[0] or options['infile']
if not os.path.exists(path):
- self.stdout.write('Invalid path: %s' % path)
+ logger.error('Invalid path: %s', path)
sys.exit(1)
# assume if <infile> is a directory, then we're passing a maildir
@@ -65,7 +79,7 @@ class Command(BaseCommand):
for m in mbox:
pass
except AttributeError:
- logger.warning('Broken mbox/Maildir, aborting')
+ logger.error('Broken mbox/Maildir, aborting')
return
logger.info('Parsing %d mails', count)
@@ -81,10 +95,15 @@ class Command(BaseCommand):
# somewhere for future reference?
errors += 1
- if (i % 10) == 0:
+ if verbosity < 3 and (i % 10) == 0:
self.stdout.write('%06d/%06d\r' % (i, count), ending='')
self.stdout.flush()
+ mbox.close()
+
+ if not verbosity:
+ return
+
self.stdout.write(
'Processed %(total)d messages -->\n'
' %(covers)4d cover letters\n'
@@ -101,4 +120,3 @@ class Command(BaseCommand):
'errors': errors,
'new': count - dropped - errors,
})
- mbox.close()
diff --git a/patchwork/parser.py b/patchwork/parser.py
index 4ede825..a61669f 100644
--- a/patchwork/parser.py
+++ b/patchwork/parser.py
@@ -950,7 +950,7 @@ def parse_mail(mail, list_id=None):
hint = clean_header(mail.get('X-Patchwork-Hint', ''))
if hint and hint.lower() == 'ignore':
- logger.debug("Ignoring email due to 'ignore' hint")
+ logger.info("Ignoring email due to 'ignore' hint")
return
project = find_project(mail, list_id)
diff --git a/patchwork/settings/base.py b/patchwork/settings/base.py
index 16ca712..3eb1f0e 100644
--- a/patchwork/settings/base.py
+++ b/patchwork/settings/base.py
@@ -177,17 +177,17 @@ LOGGING = {
'loggers': {
'django': {
'handlers': ['console'],
- 'level': 'INFO',
+ 'level': 'WARNING',
'propagate': True,
},
'patchwork.parser': {
'handlers': ['console'],
- 'level': 'DEBUG',
+ 'level': 'WARNING',
'propagate': False,
},
'patchwork.management.commands': {
'handlers': ['console', 'mail_admins'],
- 'level': 'INFO',
+ 'level': 'WARNING',
'propagate': True,
},
},