Ruby 在sinatra中记录暂停消息

Ruby 在sinatra中记录暂停消息,ruby,sinatra,Ruby,Sinatra,我已经建立了一个sinatra web服务,它接受JSON格式的POST消息。它对传入的数据执行各种验证,如果有任何问题,它会调用halt 400,“您做错了”或类似的内容,并更详细地说明他们做错了什么 错误消息(例如,“你做错了”)会被发送到客户端,但我也希望将它们登录到服务器上,以便查看人们在客户端实现中遇到的问题。有没有简单的方法可以做到这一点?签出并异常#回溯。您可能需要执行类似于raiseruntimeerror(或其他错误)的操作,然后捕获错误并将错误的结果发送到日志。感谢Carl

我已经建立了一个sinatra web服务,它接受JSON格式的POST消息。它对传入的数据执行各种验证,如果有任何问题,它会调用
halt 400,“您做错了”
或类似的内容,并更详细地说明他们做错了什么


错误消息(例如,“你做错了”)会被发送到客户端,但我也希望将它们登录到服务器上,以便查看人们在客户端实现中遇到的问题。有没有简单的方法可以做到这一点?

签出并
异常#回溯
。您可能需要执行类似于
raiseruntimeerror
(或其他错误)的操作,然后捕获错误并将
错误的结果发送到日志。

感谢Carl Zulauf为我指明了正确的方向。最后,我将所有的
halt400,“message”
调用替换为对该方法的调用:

def invalid_request! message
  logger.info "Request rejected: #{message}\n#{caller(1).join "\n"}"
  halt 400, message
end

您可以使用
调用方
方法,而不是引发和拯救异常以获取回溯。