Module: LoggingAspect

Included in:
ServerBase
Defined in:
lib/macaw_framework/aspects/logging_aspect.rb

Overview

This Aspect is responsible for logging the input and output of every endpoint called in the framework.

Instance Method Summary collapse

Instance Method Details

#call_endpoint(logger, *args) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/macaw_framework/aspects/logging_aspect.rb', line 11

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