require "logger" module Boty module Logger attr_writer :logger def self.adapter=(adapter) @adapter = adapter end def self.adapter @adapter ||= ::Logger.new(STDOUT).tap { |logger| logger.level = ::Logger::DEBUG } end def logger Logger.adapter end def log_level(level) logger.level = level end class Memory < ::Logger attr_reader :logs def initialize(*args) @logs = [] end def add(*args, &block) _, _, message = args @logs << message end end class Null < ::Logger def initialize(*args); end def add(*args, &block); end end end end