From a9ce61adbcf0d7f3833db4973f66711ff0edaf66 Mon Sep 17 00:00:00 2001 From: Nikolay Stanchev <ns17@it-innovation.soton.ac.uk> Date: Sun, 3 Jun 2018 02:00:50 +0100 Subject: [PATCH] Added logging exceptions thrown by the aggregator --- src/service/clmcservice/aggregator.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/service/clmcservice/aggregator.py b/src/service/clmcservice/aggregator.py index c4aadb5..1f796dd 100644 --- a/src/service/clmcservice/aggregator.py +++ b/src/service/clmcservice/aggregator.py @@ -28,7 +28,6 @@ from time import time, sleep from urllib.parse import urlparse from clmcservice.utilities import generate_e2e_delay_report import getopt -import sys import logging @@ -51,7 +50,7 @@ class Aggregator(object): """ if logger is None: - self.log = logging.getLogger('aggregator') + self.log = logging.getLogger(__name__) else: self.log = logger @@ -182,12 +181,27 @@ class Aggregator(object): if __name__ == '__main__': + # initialise a file logger, only when module's main method is run (NOT when aggregator class is imported somewhere else) log = logging.getLogger('aggregator') hdlr = logging.FileHandler('/var/log/clmcservice/aggregator.log', mode='a') formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') hdlr.setFormatter(formatter) log.addHandler(hdlr) - log.setLevel(logging.INFO) + log.setLevel(logging.DEBUG) + + # log all errors that are thrown in the execution of the aggregator with the logger object initialized above + import sys + import traceback + + def report_error(error_type, error_value, error_traceback, log_object=log): + log_object.error("Uncaught error thrown!") + log_object.error("Error type: {0}".format(error_type)) + log_object.error("Error value: {0}".format(error_value)) + log_object.debug("Error traceback:") + for trace in traceback.format_tb(error_traceback): + log_object.debug(trace) + + sys.excepthook = report_error # Parse command line options try: -- GitLab