我正在尝试构建一个部署在heroku上的非常简单的sinatra应用程序.
我们的应用程序不会将内容输出到Web浏览器,而是通过API与另一台计算机进行通信.所以我通常的技巧只是在我使用应用程序时向浏览器打印一些额外的调试信息不起作用.
我在相关应用程序中看到的示例代码显示了多个’puts’或’p’语句,用于查看正在发生的事情……
一般来说,如果你在Heroku上托管的代码徘徊,那就是没有做你想要的,那么在代码输出消息中的各个地方最简单的方法就是“foo equals 123”,这样你就可以看到输出到弄清楚代码中发生了什么?
p和put不输出所以当我输入“heroku logs”时我可以看到的日志…
解决方法
根据
http://docs.heroku.com/logging,如果添加基本记录器(显然默认添加到2011年2月2日之后创建的所有应用程序),您应该可以使用puts和p转到您的日志.
对于使用Sinatra和Logger的非Heroku基本日志文件:
require 'logger' Dir.mkdir('logs') unless File.exist?('logs') $log = Logger.new('logs/output.log','weekly') configure :production do $log.level = Logger::WARN end configure :development do $log.level = Logger::DEBUG end get "/" do $log.debug "Hello,World!" end