Class: Smartsheet::API::RequestLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/smartsheet/api/request_logger.rb

Overview

Logs request and response information, while censoring OAuth-relevant keys

Constant Summary collapse

QUERY_PARAM_CENSOR =
Censor.new 'code', 'client_id', 'hash', 'refresh_token'
HEADER_CENSOR =
Censor.new 'authorization'
PAYLOAD_CENSOR =
Censor.new 'access_token', 'refresh_token'
TRUNCATED_BODY_LENGTH =
1024

Instance Method Summary collapse

Constructor Details

#initialize(logger, log_full_body:) ⇒ RequestLogger

Returns a new instance of RequestLogger.



57
58
59
60
# File 'lib/smartsheet/api/request_logger.rb', line 57

def initialize(logger, log_full_body:)
  @logger = logger
  @log_full_body = log_full_body
end

Instance Method Details

#log_api_error_response(request, error) ⇒ Object



85
86
87
88
# File 'lib/smartsheet/api/request_logger.rb', line 85

def log_api_error_response(request, error)
  log_request_basics(Logger::ERROR, request)
  log_api_error(Logger::ERROR, error)
end

#log_http_error_response(request, error) ⇒ Object



90
91
92
93
# File 'lib/smartsheet/api/request_logger.rb', line 90

def log_http_error_response(request, error)
  log_request_basics(Logger::ERROR, request)
  log_http_error(Logger::ERROR, error)
end

#log_request(request) ⇒ Object



62
63
64
65
66
# File 'lib/smartsheet/api/request_logger.rb', line 62

def log_request(request)
  log_request_basics(Logger::INFO, request)
  log_headers('Request', request)
  log_body('Request', request.body)
end

#log_retry_attempt(request, response, attempt_num) ⇒ Object



68
69
70
71
72
# File 'lib/smartsheet/api/request_logger.rb', line 68

def log_retry_attempt(request, response, attempt_num)
  logger.warn { "Request attempt #{attempt_num} failed" }
  log_request_basics(Logger::WARN, request)
  log_api_error(Logger::WARN, response)
end

#log_retry_failure(num_tries) ⇒ Object



74
75
76
77
# File 'lib/smartsheet/api/request_logger.rb', line 74

def log_retry_failure(num_tries)
  try_word = num_tries == 1 ? 'try' : 'tries'
  logger.error { "Request failed after #{num_tries} #{try_word}" }
end

#log_successful_response(response) ⇒ Object



79
80
81
82
83
# File 'lib/smartsheet/api/request_logger.rb', line 79

def log_successful_response(response)
  log_status(Logger::INFO, response)
  log_headers('Response', response)
  log_body('Response', response.result)
end