[PATCH v2 1/2] parsearchive: Fix logging
Stephen Finucane
stephen at that.guru
Fri Sep 21 06:58:35 AEST 2018
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 at that.guru>
---
v2:
- Set 'WARNING' level logging by default for all parsing activities
- Make more use of loggers rather than stdout
---
patchwork/management/commands/parsearchive.py | 26 ++++++++++++++++---
patchwork/settings/base.py | 6 ++---
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/patchwork/management/commands/parsearchive.py b/patchwork/management/commands/parsearchive.py
index 96f64fa7..b4d8bcce 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 == 1 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/settings/base.py b/patchwork/settings/base.py
index 16ca712a..3eb1f0e2 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,
},
},
--
2.17.1
More information about the Patchwork
mailing list