# frozen_string_literal: false require 'logger' require_relative '../data_filters/log_data_filter' ## # This Aspect is responsible for logging # the input and output of every endpoint called # in the framework. module LoggingAspect def call_endpoint(logger, *args) return super(*args) if logger.nil? endpoint_name = args[1].split('.')[1..].join('/') logger.info("Request received for [#{endpoint_name}] from [#{args[-1]}]") begin response = super(*args) rescue StandardError => e logger.error("#{e.message}\n#{e.backtrace.join("\n")}") raise e end response end end