improve logging in sendmail command
This commit is contained in:
parent
ca57f02ee5
commit
f4c08cc22c
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue