Heroku の Ruby アプリをリアルタイムでログ監視する

最近になってRubyとかHerokuとかいじりはじめた@kasumiiです。こんにちは。

まだわからないことだらけなんですが、Heroku上でちょっとしたアプリを作っていて、ローカルで確認しているときはいいんだけどHerokuにデプロイしたアプリのログを見てるとなぜかputsなどで出力した値が見れない。。。なんでだろ?

ってことでググったら、ちゃんとHerokuのドキュメントに書いてありましたw

【参考】Logging | Heroku Dev Center

Sinatraアプリの場合、以下のように config.ru に $stdout.sync = true を入れるだけでOKでした。これでログのバッファリングを無効にできるらしい。

require './app.rb'
$stdout.sync = true
run Sinatra::Application

ターミナルなどから heroku logs するとログが見れるけど、リアルタイムでログ監視したいときは、

heroku logs --tail

もしくは、

heroku logs -t

とすれば、Heroku上のアプリにアクセスするたびにログがどんどん更新されていきます。止めるときは、Ctrl + Cで。

わーい、これでデバッグが便利になったー!(∩´∀`)∩