def set_log(stream = Pancake.configuration.log_stream,
      log_level  = Pancake.configuration.log_level,
      delimiter  = Pancake.configuration.log_delimiter,
      auto_flush = Pancake.configuration.log_auto_flush)

      @buffer                   = []
      @delimiter                = delimiter
      @auto_flush               = auto_flush

      if Levels[log_level]
        @level                  = Levels[log_level]
      else
        @level                  = log_level
      end

      @log                      = stream
      @log.sync                 = true
      @mutex = (@@mutex[@log] ||= Mutex.new)
    end
def set_log(stream = Pancake.configuration.log_stream,
      log_level  = Pancake.configuration.log_level,
      delimiter  = Pancake.configuration.log_delimiter,
      auto_flush = Pancake.configuration.log_auto_flush)

      @buffer                   = []
      @delimiter                = delimiter
      @auto_flush               = auto_flush

      if Levels[log_level]
        @level                  = Levels[log_level]
      else
        @level                  = log_level
      end

      @log                      = stream
      @log.sync                 = true
      @mutex = (@@mutex[@log] ||= Mutex.new)
    end
To initialize the logger you create a new object, proxies to set_log.

 ==== Parameters
 *args:: Arguments to create the log from. See set_logs for specifics.
 Replaces an existing logger with a new one.

 ==== Parameters
 log<IO, String>:: Either an IO object or a name of a logfile.
 log_level<~to_sym>::
   The log level from, e.g. :fatal or :info. Defaults to :error in the
   production environment and :debug otherwise.
 delimiter<String>::
   Delimiter to use between message sections. Defaults to " ~ ".
 auto_flush<Boolean>::
   Whether the log should automatically flush after new messages are
   added. Defaults to false.