Initial logging support
authorSteven Bazyl <sqrrrl@gmail.com>
Sun, 30 Dec 2012 19:26:18 +0000 (11:26 -0800)
committerSteven Bazyl <sqrrrl@gmail.com>
Sun, 30 Dec 2012 19:26:18 +0000 (11:26 -0800)
lib/google/api_client.rb
lib/google/api_client/logging.rb [new file with mode: 0644]

index 28b027ef744b53ecf5df2bf2cbd16cd5df556dd4..a0848393954c71db84fee1ee420d9a727dba899b 100644 (file)
@@ -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 (file)
index 0000000..fb3a7d9
--- /dev/null
@@ -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