From: Nicholas Seckar Date: 2005-08-24T14:00:59+09:00 Subject: Re: The Chainsaw Infanticide Logger Manuever Zedas, here's concept as discussed in #ruby-lang... Take note that I've reopened Logger. :P class Logger # Dictate the way in which this logger should format the messages # it displays. This method requires a block. The block should return # formatted strings given severity, timestamp, msg, progname. # # Useless example: # # logger = Logger.new # logger.format do |severity, timestamp, msg, progname| # "#{progname}@#{timestamp} - #{severity}::#{msg}" # end # def format(&format_proc) raise 'feed me a block dude' unless format_proc @format_proc = format_proc end # hackish use of *args, give me some love def format_message(*args) @format_proc ? @format_proc.call(*args) : super(*args) end end