When you’re living in the Active* world of Rails (ActiveRecord, ActionController, etc.) you always have access to the ubiquitous logger method. But step outside and you’re stuck dealing with the awkward, and uncomfortable RAILS_DEFAULT_LOGGER global. Often time’s I find myself taking one or both of the following approaches depending on the class I’m writing.
class MadeUp
class << self
def logger
RAILS_DEFAULT_LOGGER
end
end
def logger
RAILS_DEFAULT_LOGGER
end
end
Now I know, neither of the methods are complex or long, but how often do you want to type that same handful of lines (and doesn’t it just make your code ugly)? Enter my latest and greatest contribution to the world: Loggable.
module Loggable
module ClassMethods
def logger
RAILS_DEFAULT_LOGGER
end
end
module InstanceMethods
def logger
RAILS_DEFAULT_LOGGER
end
end
def self.included(receiver)
receiver.extend ClassMethods
receiver.send :include, InstanceMethods
end
end
Object.send :include, Loggable
Remember to require it somewhere in your code.