alias_method_chain can be useful here.
Since RestClient
is using a class called Request to execute all api requests (see source code here), you can add this snippet in an initializer to your rails project. Just add a config.debug_rest_client_duration = true
in your environment config and it will work.
class RestClient::Request
class << self
def execute_with_log_duration(args, &block)
started = Time.now
res = execute_without_log_duration(args, &block)
Rails.logger.info "api call duration is: " + (Time.now - started).to_s + " seconds"
return res
end
alias_method_chain :execute, :log_duration if Rails.application.config.debug_rest_client_duration
end
end