diff --git a/docbow_project/docbow/management/commands/sendmail.py b/docbow_project/docbow/management/commands/sendmail.py index dd5ae71..18eee2d 100644 --- a/docbow_project/docbow/management/commands/sendmail.py +++ b/docbow_project/docbow/management/commands/sendmail.py @@ -32,11 +32,13 @@ In case of failure the following return value is returned: option_list = BaseCommand.option_list + ( make_option("--sender"), - make_option("--base-url", default="http://localhost:8000")) + make_option("--base-url", default="http://localhost:8000"), + make_option("--ip", default='')) def handle(self, *args, **options): mail_sender = None - logger = logging.getLogger('docbow') + self.logger = logging.LoggerAdapter(logging.getLogger('docbow'), { + 'ip': options['ip'], 'user': 'Anonymous' }) if options.get('sender'): try: mail_sender = auth_models.User.objects.get(username=options['sender']) @@ -46,21 +48,23 @@ In case of failure the following return value is returned: try: mail = email.message_from_file(sys.stdin) except email.errors.MessageParseError, e: - print >>sys.stderr, '7.7.1 Error parsing message', e - sys.exit(1) + self.error('7.7.1 Error parsing message', exite_code=1) try: self.handle_mail(mail, mail_sender, args, **options) except Exception, e: - logger.exception('Unknown error encountered in docbow sendmail command') - print >>sys.stderr, '7.7.1 Uknown error when handling the mail' - sys.exit(5) + self.logger.exception('Unknown exception') + self.error('7.7.1 Uknown error when handling the mail', exit_code=5) def error(self, msg, exit_code=None, *args): if args: print >>sys.stderr, msg % args else: print >>sys.stderr, msg - logger.error(('smtp interface: message %s refused, ' % self.message_id) + msg, *args) + if hasattr(self, 'message_id'): + msg = ('smtp interface: message %s refused, ' % self.message_id) + msg + else: + msg = 'smtp interface: message refused, ' + msg + self.logger.error(msg, *args) if exit_code: sys.exit(exit_code) @@ -156,4 +160,4 @@ In case of failure the following return value is returned: else: blob = document.timestamp_blob() tst = timestamp.timestamp_json(blob) - logger.info('smtp interface: message %s accepted, sent %s, timestamp %s' % (self.message_id, document, tst)) + self.logger.info('smtp interface: message %s accepted, sent %s, timestamp %s' % (self.message_id, document, tst))