Aaron Starr
2010-Aug-23 20:50 UTC
[Mechanize-users] Logging response headers in multi-threaded implementation of Mechanize
Hi, all,
I''m using Mechanize in an environment where multiple threads are
running
simultaneously. Each thread uses its own Mechanize object. This works
swimmingly, except that the threads step on each other when logging. So,
I''ve used the following code to insure that each mechanize object has
its
own log that it''s writing to, for each transaction. (Also at
http://pastie.org/1110819).
@mech = Mechanize.new do |mech|
# put the log in the Mechanize object, and not in the class
def mech.log=(val); @my_log = val; end
def mech.log; @my_log; end
end
# [...]
mech.log = Logger.new log_file_for_this_web_transaction
The problem is that I am only getting the request information and request
headers in the logs. The response headers go missing. Looking around a bit,
I find that the reason is that Mechanize logs the response headers like
this:
if Mechanize.log
Mechanize.log.debug #...
So, the response headers are going to that non-existent class log. Anyone
have a brilliant and insightful work-around? It would be really nice to have
an independent, self-contained, whole log for each web transaction even when
multiple threads are going at once.
My versions:>
> mechanize (1.0.0)
> ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
>
Thanks in advance,
Aaron
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/mechanize-users/attachments/20100823/85c22219/attachment-0001.html>