我在几个站点上发现了这个漂亮的代码片段,让我通过Capistrano分析生产日志:
desc "tail production log files" task :tail_logs,:roles => :app do run "tail -f #{shared_path}/log/production.log" do |channel,stream,data| puts # for an extra line break before the host name puts "#{channel[:host]}: #{data}" break if stream == :err end end
它工作得很好,但是,当我完成阅读日志后,我按下Ctrl C,并在我的控制台上产生讨厌的错误.不是说这是一个巨大的问题,但我觉得很讨厌.我可以做什么,这样就不会产生错误,但是任务/尾巴/日志的查看只是静静地结束?
另外,我不太熟悉如何分析日志 – 这真的是最简单的方法来快速查看(远程生产)日志中的最近的事件,还是有更好的方法?我知道有一个用于日志分析的gazillion工具,但是我想要一个简单的解决方案来查看最后几个请求,而不是笨重和复杂的事情.我不知道这个Capistrano解决方案是否真的是最佳的.喜欢,大多数人使用什么解决方案?
解决方法
尝试陷阱(“INT”){puts’Interupted’;退出0; } 喜欢这个:
desc "tail production log files" task :tail_logs,:roles => :app do trap("INT") { puts 'Interupted'; exit 0; } run "tail -f #{shared_path}/log/production.log" do |channel,data| puts # for an extra line break before the host name puts "#{channel[:host]}: #{data}" break if stream == :err end end
我希望这有帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。