Loggable

Loggable is a gem that’s designed to add a logging interface to classes that don’t automatically support it.

Installation

This code is available as a Ruby Gem:

sudo gem install loggable

Usage

Using the Gem is easy, just include the loggable class method in your class to enable it:

require 'rubygems'
require 'logger'
require 'loggable'

class MyClass
  loggable
end

Now you can assign a logger instance to this class and have it write log messages to the specified file:

MyClass.logger = Logger.new('debug.log')

Any class or instance methods now have access to the logger:

class MyClass
  def self.do_something
    logger.debug 'doing something in the class'
  end

  def do_something
    logger.debug 'doing something in an instance'
  end
end

The above code will write into the log file when called:

MyClass.do_something
MyClass.new.do_something

debug.log:

D, [2008-04-24T20:37:32.273930 #25821] DEBUG -- : doing something in the class
D, [2008-04-24T20:37:32.274062 #25821] DEBUG -- : doing something in an instance

Credits

Copyright © 2008 Patrick Reagan of Viget Labs ([email protected]) Released under the MIT license