Ruby on rails 保留capistrano部署的日志

Ruby on rails 保留capistrano部署的日志,ruby-on-rails,capistrano,Ruby On Rails,Capistrano,是否有办法在每次通过capistrano进行部署时保存日志(本地或存储在远程服务器上)?记录过去任何特定时间正在进行的修订是非常有用的 我知道部署过程会在releases目录中留下最近10次部署的部署文件,但最好保留更多的历史记录,并以平面文件的形式对其进行访问。capistrano设置了一些有用的变量,一个名为latest\u revision的变量,您可以将其转储到文件中 task :mark_revision do log = "#{deploy_to}/revisions.log"

是否有办法在每次通过capistrano进行部署时保存日志(本地或存储在远程服务器上)?记录过去任何特定时间正在进行的修订是非常有用的


我知道部署过程会在releases目录中留下最近10次部署的部署文件,但最好保留更多的历史记录,并以平面文件的形式对其进行访问。

capistrano设置了一些有用的变量,一个名为
latest\u revision
的变量,您可以将其转储到文件中

task :mark_revision do
  log = "#{deploy_to}/revisions.log"
  run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
  "echo #{latest_revision} >> #{log};"
end

没有内置的功能,所以另一个答案可以完美地工作;我可能会说,您应该以某种方式将其附加到默认执行链,我建议如下

after :deploy, :mark_revision
更好的imho应该是这样的:

after :deploy do
    log = "#{deploy_to}/revisions.log"
    run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
    "echo #{latest_revision} >> #{log};"
end
我把它作为讨论Capistrano的bug跟踪器的一张票打开了,也许我们会在核心中实现一些东西来保存更好的日志;这当然是一个我们严重忽视的重大问题

Peritor实验室的“Webistrano”做了类似的事情,通过保持数据库驱动的web前端,这允许您记录任何您喜欢的内容,并将部署依赖从开发人员机器转移到更中心的地方;人们通常在CI服务器上使用Webistrano,如果是自托管,则在存储库主机上使用Webistrano。有关其Trac的更多信息:


错误就在这里:

看来capistrano 3在部署时为您创建了一个revisons.log