ruby-on-rails – 尾巴生产日志与Capistrano – 如何阻止它

我在几个站点上发现了这个漂亮的代码片段,让我通过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

我希望这有帮助.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...