diff options
author | Stephen Finucane <stephen@that.guru> | 2018-09-19 19:50:55 +0100 |
---|---|---|
committer | Stephen Finucane <stephen@that.guru> | 2018-09-20 22:06:14 +0100 |
commit | 133091da0a527ef8fe89aea38c4855973b48d5f1 (patch) | |
tree | baa311c3c94a5b7f97414b1714a1ed767df98ec3 | |
parent | b832aa43a8e29e52359dd51c17f77d09dae1fec4 (diff) | |
download | patchwork-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.py | 26 | ||||
-rw-r--r-- | patchwork/parser.py | 2 | ||||
-rw-r--r-- | patchwork/settings/base.py | 6 |
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, }, }, |