定义Capistrano 3任务特定的log_level

时间:2014-08-04 03:25:04

标签: capistrano3

默认情况下,我的capistrano 3设置为:set :log_level, :info 它有助于在部署时消除噪音。

但我想为特定任务更改该值,例如tail log_file 否则,不显示任何输出。

desc "tail rails logs"
task :tail do
  on roles(:app) do
    execute "tail -f #{shared_path}/log/#{fetch(:rails_env)}.log"
  end
end

更改特定rake任务的log_level设置的正确方法是什么?

谢谢

1 个答案:

答案 0 :(得分:3)

在检查capistrano源代码时,我注意到在任务调用之前调用了configure_backend。因此,我的设置更改被忽略。我把它修改如下:

def set_output
  set :log_level, :debug
  configure_backend
end

desc "tail rails logs"
task :tail do
  set_output
  on roles(:app) do
    execute "tail -f #{shared_path}/log/#{fetch(:rails_env)}.log"
  end
end