tobyclemson / gmail.com wrote: > Hi, > > Can anyone suggest the best way to pass a Logger object around between > all the classes in an application? > > Currently I have it set in a constant in the top-level but I don't > feel that this is the best way to do it as it couples the code in each > of my classes to the current implementation and makes it difficult for > me to reuse the code elsewhere without first setting up a logger > instance of the same name. > > Thanks, > Toby > > > > Surely any way you do this if a class writes to a logger you have to set up the logger first? But anyhow, I guess you could make a module that provides the logging and include that on all appropriate classes: logging.rb: LOG = Logger.new(...) module Logging def logger LOG || Logger.new(nil) end end something.rb: require 'logging' class Something include Logging def do_something logger.info "something" end end