Sha256: 12c1d2ac6e63461eab11cd0dbf75cee1487192264e73635b69d32040e4e834cd

Contents?: true

Size: 1001 Bytes

Versions: 3

Compression:

Stored size: 1001 Bytes

Contents

module Loggable
  
  module ClassMethods
    
    # Use this method on any of your classes to trigger the logging facility:
    #
    #   MyClass.logger = Logger.new('/path/to/logfile')
    #
    # Now you can call the 'logger' method inside a class or instance method to log at
    # the specified level.  See the README for details.
    #
    def logger=(logger)
      @@logger = logger
    end
    
    # If ::Rails.logger is defined, that will be returned.
    # If no logger has been defined, a new STDOUT Logger will be created.
    def logger
      
      if defined?(::Rails) && ::Rails.respond_to?(:version)
        if ::Rails.version >= "2.1" && !::Rails.logger.nil?
          @@logger = ::Rails.logger
        end
      end
      
      # If none of the above was able to set @@logger, create a new default logger
      @@logger ||= ::Logger.new(STDOUT)
      
      return @@logger
    end
    
  end
  
  module InstanceMethods
    def logger
      self.class.logger
    end
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mediashelf-loggable-0.4.10 lib/loggable/log_methods.rb
mediashelf-loggable-0.4.9 lib/loggable/log_methods.rb
mediashelf-loggable-0.4.8 lib/loggable/log_methods.rb