Module: ApiLogger

Defined in:
lib/api_logger.rb,
lib/api_logger/railtie.rb,
lib/api_logger/version.rb,
lib/api_logger/middleware.rb,
lib/api_logger/configuration.rb,
lib/generators/api_logger/install/install_generator.rb

Overview

:nodoc:

Defined Under Namespace

Modules: Generators Classes: Configuration, Error, Middleware, Railtie

Constant Summary collapse

VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



14
15
16
# File 'lib/api_logger.rb', line 14

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configObject



22
23
24
# File 'lib/api_logger.rb', line 22

def config
  configuration
end

.configure {|configuration| ... } ⇒ Object

Yields:



18
19
20
# File 'lib/api_logger.rb', line 18

def configure
  yield(configuration)
end

.log(endpoint:, http_method: nil, request_headers: nil, request_params: nil, response_body: nil, response_headers: nil, response_status: nil, error_message: nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/api_logger.rb', line 26

def log(endpoint:, http_method: nil, request_headers: nil, request_params: nil, response_body: nil,
        response_headers: nil, response_status: nil, error_message: nil)
  return unless configuration.enabled

  request_params = prepare_params(request_params)
  request_headers = prepare_headers(request_headers)
  response_body = prepare_response(response_body)
  response_headers = prepare_headers(response_headers)

  # Create the log entry
  klass = get_model_class
  klass.create(
    endpoint: endpoint.to_s,
    http_method: http_method,
    request_headers: request_headers,
    request_params: request_params,
    response_body: response_body,
    response_headers: response_headers,
    response_status: response_status,
    error_message: error_message
  )
rescue StandardError => e
  Rails.logger.error("ApiLogger failed to log request: #{e.message}") if defined?(Rails)
end