diff --git a/lib/google/api_client.rb b/lib/google/api_client.rb index 28b027ef7..a08483939 100644 --- a/lib/google/api_client.rb +++ b/lib/google/api_client.rb @@ -19,6 +19,7 @@ require 'multi_json' require 'compat/multi_json' require 'stringio' +require 'google/api_client/logging' require 'google/api_client/version' require 'google/api_client/errors' require 'google/api_client/environment' @@ -29,11 +30,15 @@ require 'google/api_client/result' require 'google/api_client/media' require 'google/api_client/service_account' require 'google/api_client/batch' +require 'google/api_client/railtie' if defined?(Rails) module Google + ## # This class manages APIs communication. class APIClient + include Google::Logging + ## # Creates a new Google API client. # @@ -74,12 +79,13 @@ module Google # Most developers will want to leave this value alone and use the # application_name option. - application_string = ( - options[:application_name] ? ( - "#{options[:application_name]}/" + - "#{options[:application_version] || '0.0.0'}" - ) : "" - ) + if options[:application_name] + app_name = options[:application_name] + app_version = options[:application_version] + application_string = "#{app_name}/#{app_version || '0.0.0'}" + else + logger.warn("Please provide :application_name and :application_version when initializing the APIClient") + end self.user_agent = options[:user_agent] || ( "#{application_string} " + "google-api-ruby-client/#{VERSION::STRING} " + diff --git a/lib/google/api_client/logging.rb b/lib/google/api_client/logging.rb new file mode 100644 index 000000000..fb3a7d902 --- /dev/null +++ b/lib/google/api_client/logging.rb @@ -0,0 +1,30 @@ +require 'logger' + +module Google + class APIClient + + class << self + ## + # Logger for the API client + # + # @return [Logger] logger instance. + attr_accessor :logger + end + + self.logger = Logger.new(STDOUT) + self.logger.level = Logger::WARN + end + + ## + # Module to make accessing the logger simpler + module Logging + ## + # Logger for the API client + # + # @return [Logger] logger instance. + def logger + Google::APIClient.logger + end + end + +end \ No newline at end of file