diff --git a/src/service/clmcservice/views.py b/src/service/clmcservice/views.py index afafa632358f3990d87d03f47215aae7bdc83d83..2b55f084b7d5e50bc3d4c4f6006f2b746b5b62b9 100644 --- a/src/service/clmcservice/views.py +++ b/src/service/clmcservice/views.py @@ -258,7 +258,7 @@ class RoundTripTimeQuery(object): db_client = InfluxDBClient(host=url_object.hostname, port=url_object.port, database=influx_db_name, timeout=10) query = 'SELECT mean(*) FROM "{0}"."autogen"."e2e_delays" WHERE time >= {1} and time < {2} and sf_instance = \'{3}\''.format( influx_db_name, start_timestamp, end_timestamp, media_service) - log.info(query) + log.info("Executing query: {0}".format(query)) result = db_client.query(query) actual_result = next(result.get_points(), None) @@ -274,8 +274,14 @@ class RoundTripTimeQuery(object): rtt = self.calculate_round_trip_time(forward_latency, reverse_latency, service_delay, request_size, response_size, bandwidth) return {"result": rtt} - except: - raise HTTPInternalServerError("Cannot instantiate connection with database {0} on url {1}.".format(influx_db_name, influx_db_url)) + except Exception as e: + msg = "Cannot instantiate connection with database {0} on url {1}.".format(influx_db_name, influx_db_url) + log.info(msg) + log.error(type(e)) + log.error(e) + log.error(e.args) + + raise HTTPInternalServerError(msg) except AssertionError: raise HTTPBadRequest('Bad request content - must be in JSON format: {"media_service": value, "start_timestamp": value, "end_timestamp": value}.') diff --git a/src/service/development.ini b/src/service/development.ini index 7550169e1bd60b1ccc6253d7a7b6cad39e434e4a..7a755b9ce89f8b6074055f6e7c0f9d2ba6a55198 100644 --- a/src/service/development.ini +++ b/src/service/development.ini @@ -11,7 +11,8 @@ pyramid.debug_authorization = false pyramid.debug_notfound = false pyramid.debug_routematch = false pyramid.default_locale_name = en -pyramid.includes = pyramid_debugtoolbar +pyramid.includes = pyramid_debugtoolbar pyramid_exclog +exclog.ignore = ## Aggregator default configuration aggregator_report_period = 5 @@ -36,22 +37,22 @@ listen = localhost:9080 ### [loggers] -keys = root, clmcservice +keys = root, exc_logger [handlers] -keys = console, filelog +keys = console, filelog, exc_handler [formatters] -keys = generic +keys = generic, exc_formatter [logger_root] level = INFO handlers = console, filelog -[logger_clmcservice] -level = DEBUG -handlers = -qualname = clmcservice +[logger_exc_logger] +level = ERROR +handlers = exc_handler +qualname = exc_logger [handler_console] class = StreamHandler @@ -62,8 +63,17 @@ formatter = generic [handler_filelog] class = FileHandler args = ('/var/log/clmcservice/service.log','a') -level = INFO +level = NOTSET formatter = generic +[handler_exc_handler] +class = FileHandler +args = ('/var/log/clmcservice/service-exceptions.log', 'a') +level = ERROR +formatter = exc_formatter + [formatter_generic] format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s + +[formatter_exc_formatter] +format = %(asctime)s %(message)s \ No newline at end of file diff --git a/src/service/production.ini b/src/service/production.ini index 0bfbe730fa747cfc55a7bdbb48f64bafbb2a8bac..ff22af32afaf695b6a7baf17ca7e452b48634245 100644 --- a/src/service/production.ini +++ b/src/service/production.ini @@ -11,6 +11,8 @@ pyramid.debug_authorization = false pyramid.debug_notfound = false pyramid.debug_routematch = false pyramid.default_locale_name = en +pyramid.includes = pyramid_exclog +exclog.ignore = ## Aggregator default configuration aggregator_report_period = 5 @@ -31,22 +33,22 @@ listen = *:9080 ### [loggers] -keys = root, clmcservice +keys = root, exc_logger [handlers] -keys = console, filelog +keys = console, filelog, exc_handler [formatters] -keys = generic +keys = generic, exc_formatter [logger_root] -level = WARN +level = INFO handlers = console, filelog -[logger_clmcservice] -level = WARN -handlers = -qualname = clmcservice +[logger_exc_logger] +level = ERROR +handlers = exc_handler +qualname = exc_logger [handler_console] class = StreamHandler @@ -57,8 +59,17 @@ formatter = generic [handler_filelog] class = FileHandler args = ('/var/log/clmcservice/service.log','a') -level = INFO +level = NOTSET formatter = generic +[handler_exc_handler] +class = FileHandler +args = ('/var/log/clmcservice/service-exceptions.log', 'a') +level = ERROR +formatter = exc_formatter + [formatter_generic] format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s + +[formatter_exc_formatter] +format = %(asctime)s %(message)s \ No newline at end of file diff --git a/src/service/setup.py b/src/service/setup.py index 0b195c5433419b000bf0ff63abf59f9d01e00123..802f7416861d09a25760c857e16b9898fc8c2243 100644 --- a/src/service/setup.py +++ b/src/service/setup.py @@ -44,6 +44,7 @@ requires = [ 'plaster_pastedeploy', 'pyramid', 'pyramid_debugtoolbar', + 'pyramid_exclog', 'waitress', 'influxdb', 'pytest',