记录sinatra中的消息

时间:2012-05-31 00:42:19

标签: ruby sinatra

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

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

感谢Carl Zulauf指出我正确的方向。最后,我通过调用此方法替换了所有halt 400, "message"次调用:

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