Sha256: e7c8d94bc9b1dd7cb13edd3697a562b8272c6f5dc721eedfd31cdd33a6cbce35

Contents?: true

Size: 620 Bytes

Versions: 1

Compression:

Stored size: 620 Bytes

Contents

# 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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
macaw_framework-1.3.1 lib/macaw_framework/aspects/logging_aspect.rb