def error *args
      cfg = get_config!
      if (cfg.out or cfg.print) && !@mute_error
        text, bind, opts = args.get_opts [!block_given? && args[0].kinda(Hash) ? args[0] : "\b\b ", nil], :mute => 0
        opts[:mute] |= NOLOG if !cfg.out
        opts[:mute] |= NOPRINT if !cfg.print
        return if block_given? && (text = yield).nil?
        _print(:error, text, opts[:mute], cfg._caller && (@current_caller || caller)[(opts[:caller] || opts[:caller_offset]).to_i], bind, cfg)
      end  
    end
def error *args
      cfg = get_config!
      if (cfg.out or cfg.print) && !@mute_error
        text, bind, opts = args.get_opts [!block_given? && args[0].kinda(Hash) ? args[0] : "\b\b ", nil], :mute => 0
        opts[:mute] |= NOLOG if !cfg.out
        opts[:mute] |= NOPRINT if !cfg.print
        return if block_given? && (text = yield).nil?
        _print(:error, text, opts[:mute], cfg._caller && (@current_caller || caller)[(opts[:caller] || opts[:caller_offset]).to_i], bind, cfg)
      end  
    end
controls:
 - @mute_warn, @mute_info, @mute_log, @mute_debug:
       do not print this messages regardless of any globals
 - @out_all: write to file info and debug messages
 - @out:      write to file
 - @print:    write to stdout