def log (level, message, quiet: false, &block)
      if !quiet && (LEVELS.index(level) >= LEVELS.index(Logger.level))
        synchronize do
          message = message.to_s.colorize(COLORS[level]) if level
          message.split("\n").each do |line|
            STDERR.puts "  " * Logger.indent + @prefix + line
          end
        end
        with_indent(&block) if block
      elsif block
        block.()
      end
    end
def log (level, message, quiet: false, &block)
      if !quiet && (LEVELS.index(level) >= LEVELS.index(Logger.level))
        synchronize do
          message = message.to_s.colorize(COLORS[level]) if level
          message.split("\n").each do |line|
            STDERR.puts "  " * Logger.indent + @prefix + line
          end
        end
        with_indent(&block) if block
      elsif block
        block.()
      end
    end
Display a log message. The block, if specified, is executed in an indented region after the log message is shown.
 @api private
 @param [Symbol] level the severity level
 @param [#to_s] message the message to display
 @param block a block to execute with an indent after the message is displayed
 @return the value of block, or nil