不幸的是,我还不能发表评论,但万一其他人有这个问题,自从上面 Gabe Coyne 的(超级有用的)回答以来,一些事情似乎已经发生了变化。我不需要更改我的 heroku log_level,所以要开始生成日志,您可以像这样使用初始化程序 config/initializers/oink.rb:
YourApp::Application.middleware.use( Oink::Middleware, :logger => Hodel3000CompliantLogger.new(STDOUT))
如果您只希望生产中的 oink 日志,则将该行放在 production.rb 中。然后你需要把日志放到本地日志文件中,在上一个答案中也提到过:
heroku logs n500 --app app_name > log/production.log
或者您可以从 Papertrail 或您最喜欢的日志存档器中获取它们。本地日志需要更新为 oink 期望的格式,但我发现 grep 'Oink|Memory|Instantiation' 不起作用,因为该字符串似乎已从日志中删除,所以我改用了这个:
cat log/production.log | cut -c 46- | grep 'rails\[' > log/production-oink.log
然后您可以使用oink --threshold=0 log/production-oink.log,它会起作用。
唯一让我印象深刻的是要剪切的前面字符的数量。而cut -c 39- 似乎以前工作过,我不得不使用cut -c 46-。显然这会有所不同,所以如果它不明显,您只是试图在原始日志中获取如下所示的行:
2013-07-19T18:47:09.494475+00:00 app[web.1]: Jul 19 18:47:09 24ab5d5s-g46c-2d44-dss2-233sdfa99852wd rails[5]: Oink Action: welcome#about
看起来像这样:
Jul 19 18:47:09 24ab5d5s-g46c-2d44-dss2-233sdfa99852wd rails[5]: Oink Action: welcome#about
去掉前面的部分。希望这会有所帮助!