Benubird
Benubird

Reputation: 19507

How to print capistrano current thread hash?

An example output from 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.

As you can see, each line starts with "{type} {hash}". I assume the hash is some unique identifier for either the server or the running thread, as I've noticed if I run capistrano over several servers, each one has it's own distinct hash.

My question is, how do I get this value? I want to manually output some message during execution, and I want to be able to match my output, with the server that triggered it.

Something like: puts "DEBUG ["+????+"] Something happened!" What do I put in the ???? there? Or is there another, built in way to output messages like this?

For reference, I am using Capistrano Version: 3.2.1 (Rake Version: 10.3.2)

Upvotes: 1

Views: 229

Answers (1)

Roman Usherenko
Roman Usherenko

Reputation: 5639

This hash is a command uuid. It is tied not to the server but to a specific command that is currently run.

If all you want is to distinguish between servers you may try the following

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

Upvotes: 1

Related Questions