2

我已经建立了一个接受 JSON 格式的 POST 消息的 sinatra Web 服务。它对传入的数据执行各种验证,如果有任何它调用的问题halt 400, "You're doing it wrong"或类似的东西,更详细地说明他们做错了什么。

错误消息(例如“你做错了”)可以很好地发送到客户端,但我也想让它们登录到服务器上,这样我就可以看到人们在哪里遇到了客户端实现的问题。有没有简单的方法可以做到这一点?

4

2 回答 2

4

检查日志记录Exception#backtrace. 您可能需要执行类似raise RuntimeError(或其他错误)的操作,然后捕获错误并将结果发送error.backtrace到您的日志。

于 2012-05-31T00:57:18.503 回答
2

感谢 Carl Zulauf 为我指明了正确的方向。最后,我halt 400, "message"用对这个方法的调用替换了我所有的调用:

def invalid_request! message
  logger.info "Request rejected: #{message}\n#{caller(1).join "\n"}"
  halt 400, message
end
于 2012-06-01T07:08:39.263 回答