# Adds the 'around_level' method to Logger.

class Logger
##BBTAG: module_eval not supported in IronRuby with string argument
#  def self.define_around_helper(level)
#    module_eval <<-end_eval
#      def around_#{level}(before_message, after_message, &block)
#        self.#{level}(before_message)
#        return_value = block.call(self)
#        self.#{level}(after_message)
#        return return_value
#      end
#    end_eval
#  end

  ##BBTAG: temporary workaround
  def self.define_around_helper(level)
    module_eval do
      define_method("around_#{level}") do |before_message, after_message, block|
        self.send(level, before_message)
        return_value = block.call(self)
        self.send(level, after_message)
        return return_value        
      end
    end
  end
  [:debug, :info, :error, :fatal].each {|level| define_around_helper(level) }

end