最近になってRubyとかHerokuとかいじりはじめた@kasumiiです。こんにちは。
まだわからないことだらけなんですが、Heroku上でちょっとしたアプリを作っていて、ローカルで確認しているときはいいんだけどHerokuにデプロイしたアプリのログを見てるとなぜかputsなどで出力した値が見れない。。。なんでだろ?
ってことでググったら、ちゃんとHerokuのドキュメントに書いてありましたw
【参考】Logging | Heroku Dev Center
$stdout.sync = true を入れる
Sinatraアプリの場合、以下のように config.ru に $stdout.sync = true
を入れるだけでOKでした。これでログのバッファリングを無効にできるらしい。
require './app.rb' $stdout.sync = true run Sinatra::Application
heroku logs –tail でログ確認
ターミナルなどから heroku logs
するとログが見れるけど、リアルタイムでログ監視したいときは、
heroku logs --tail
もしくは、
heroku logs -t
とすれば、Heroku上のアプリにアクセスするたびにログがどんどん更新されていきます。止めるときは、Ctrl + Cで。
わーい、これでデバッグが便利になったー!(∩´∀`)∩