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'
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.
#
# 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} " +
--- /dev/null
+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