2015-05-14 30 views
1

輸出的一個例子:如何打印capistrano當前線程散列?從Capistrano的

INFO [94db8027] Running /usr/bin/env uptime on [email protected]:22 
DEBUG [94db8027] Command: /usr/bin/env uptime 
DEBUG [94db8027] 17:11:17 up 50 days, 22:31, 1 user, load average: 0.02, 0.02, 0.05 
INFO [94db8027] Finished in 0.435 seconds command successful. 

正如你可以看到,每行開頭 「{類型} {散列}」。我假設散列是服務器或運行線程的唯一標識符,正如我注意到的,如果我在多個服務器上運行capistrano,每個服務器都有它自己獨特的散列。

我的問題是,我如何得到這個值?我想在執行過程中手動輸出一些消息,並且希望能夠將我的輸出與觸發它的服務器相匹配。

類似於:puts "DEBUG ["+????+"] Something happened!" 我該如何放置?那裏?還是有另一種方式來構建輸出這樣的消息?

作爲參考,我使用Capistrano的版本:3.2.1(瑞克版本:10.3.2)

回答

1

該散列是一個命令UUID。它並不是綁定到服務器,而是綁定到當前運行的特定命令。

如果你想要的是服務器之間的區別,你可以嘗試以下

task :some_task do 
    on roles(:app) do |host| 
    debug "[#{host.hostname}:#{host.port}] something happened" 
    end 
end