From: Kassym Dorsel Date: 2011-11-25T11:26:14+09:00 Subject: set logger.progname on a per thread basis I have this : class Stress def initialize(user, pass) @user = user @pass = pass @agent = Mechanize.new do |a| a.user_agent_alias = 'Windows Mozilla' a.history.max_size = 0 a.log = my_log a.log.progname = @user end end def browse @agent.log.progname = @user # open/close page end end my_log = Logger.new('dump.log') my_log.level = Logger::DEBUG atom = Mutex.new for i in (Attempts_start..Attempts_end) threads << Thread.new(Creden_base + i.to_s) do |user| stress = Stress.new(user, user) for j in (0..Attempts_req) do atom.synchronize {stress.browse} # has to be atomic end end end The above code correctly identifies the different threads by the user by setting the progname, but the problem is I have to use the Mutex class to synchronize it, thus loosing the parallel computing since I have to wait for the request to be sent and received before continuing. Is there a way to do this without using the Mutex class. Have the progname set on a per thread basis while running the threads in real-time parallel. -- Posted via http://www.ruby-forum.com/.