class Ougai::Formatters::Readable

def call(severity, time, progname, data)

def call(severity, time, progname, data)
  msg = data.delete(:msg)
  level = @plain ? severity : colored_level(severity)
  strs = ["[#{time.iso8601(3)}] #{level}: #{msg}"]
  if data.key?(:err)
    err = data.delete(:err)
    err_str = "  #{err[:name]} (#{err[:message]}):"
    err_str += "\n    " + err[:stack] if err.key?(:stack)
    strs.push(err_str)
  end
  unless data.empty?
    strs.push(data.ai({ plain: @plain }))
  end
  strs.join("\n") + "\n"
end