From 9e24dfeaabd1c4daddb96c9c143f60cfa3374bf2 Mon Sep 17 00:00:00 2001 From: Tom Ritter Date: Tue, 8 Sep 2020 13:35:45 -0400 Subject: Better error logging --- jobs/JobBase.py | 29 ++++++++++++++++------------- jobs/__init__.py | 5 +++-- 2 files changed, 19 insertions(+), 15 deletions(-) (limited to 'jobs') diff --git a/jobs/JobBase.py b/jobs/JobBase.py index 7f8fbc9..ac0b793 100755 --- a/jobs/JobBase.py +++ b/jobs/JobBase.py @@ -148,19 +148,21 @@ def sendEmail(config, subject, body, to=""): logging.info("Not sending email with subject '" + subject + '" but pretending we did.\n' + body) return True - FROM = config.get('email', 'user') - PASS = config.get('email', 'pass') - if not to: - to = config.get('general', 'alertcontact') - - # Prepare actual message - # Avoid gmail threading - subject = "[" + config.get('general', 'servername') + "] " + subject + " " - if config.getboolean('email', 'bustgmailthreading'): - subject += str(random.random()) - message = """\From: %s\nTo: %s\nSubject: %s\n\n%s""" \ - % (FROM, ", ".join(to), subject, body) try: + FROM = config.get('email', 'user') + PASS = config.get('email', 'pass') + + if not to: + to = config.get('general', 'alertcontact') + + # Prepare actual message + # Avoid gmail threading + subject = "[" + config.get('general', 'servername') + "] " + subject + " " + if config.getboolean('email', 'bustgmailthreading'): + subject += str(random.random()) + message = """\From: %s\nTo: %s\nSubject: %s\n\n%s""" \ + % (FROM, ", ".join(to), subject, body) + server = smtplib.SMTP(config.get('email', 'smtpserver'), config.get('email', 'smtpport')) server.ehlo() server.starttls() @@ -169,5 +171,6 @@ def sendEmail(config, subject, body, to=""): server.close() return True except Exception as e: - logging.critical("Caught an exception trying to send an email:" + str(e)) + logging.critical("Caught an exception trying to send an email:" + repr(e)) + logging.critical(logging.traceback.format_exc()) return False diff --git a/jobs/__init__.py b/jobs/__init__.py index b4b4f48..efce333 100755 --- a/jobs/__init__.py +++ b/jobs/__init__.py @@ -78,11 +78,12 @@ class JobFinder(object): module = load_module('jobs.' + full_name, file, pathname, description) except Exception as e: - logging.critical('Import Error on ' + module_name + ': ' + str(e)) + logging.critical('Import Error on ' + module_name + ': ' + repr(e)) + logging.critical(logging.traceback.format_exc()) jobs.JobBase.sendEmail(self.config, 'Import Error on ' + module_name, str(e)) continue job_modules.append(module) return job_modules def get_jobs(self): - return self._jobs \ No newline at end of file + return self._jobs -- cgit v1.2.3