def set_log(log, log_level = nil, delimiter = " ~ ", auto_flush = false)
      if log_level && Levels[log_level.to_sym]
        @level = Levels[log_level.to_sym]
      else
        @level = Levels[:debug]
      end
      @buffer     = []
      @delimiter  = delimiter
      @auto_flush = auto_flush

      initialize_log(log)
    end
def set_log(log, log_level = nil, delimiter = " ~ ", auto_flush = false)
      if log_level && Levels[log_level.to_sym]
        @level = Levels[log_level.to_sym]
      else
        @level = Levels[:debug]
      end
      @buffer     = []
      @delimiter  = delimiter
      @auto_flush = auto_flush

      initialize_log(log)
    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.