Tail your app logs with capistrano
Recently I deployed a new app using capistrano, and I wanted to tail the app logs easily. My app was deployed to two nodes, which complicates things just a little bit. There are a few snippets out there which discribed how to setup a task to accomplish this. These worked but I wanted to improve on them. Here’s my modified snippet:
task :logs do
trap('INT') { puts; exit 0; }
last_host = nil
run "tail -f #{shared_path}/log/*.log" do |channel, stream, data|
puts "\n\033[34m==> #{channel[:host]}\033[0m" unless channel[:host] == last_host
puts data
last_host = channel[:host]
break if stream == :err
end
end
I just need to run cap logs
to get a nicely foratted stream of the logs in real-time. Hope this helps someone.
◆