Richard Ryan ryanr@12-253-103-174.client.attbi.com wrote in message news:m2sn1dkzox.fsf@12-253-103-174.client.attbi.com…
Thanks for the suggestion. The problem with metaphor is that the
intended idea can be too easily miscommunicated. By ``symphony’’
I was referring to the complexity of the code structure.
If by complexity you mean not calling the same function 6 times with
different args, then by all means continue using your prefered tool:
exec 3>&1
exec 4>&2
exec 1> /tmp/logfile.out 2>&1
… do stuff
exec 1>&3
exec 2>&4
exec 3>&-
exec 4>&-
Anyway, that being said, if you put the merging of stdout together
with stderr into the logfile which is in my second example, you’ll
probably get back at least the same number of lines, and you’ll still
have the complexity (if not quite a bit more).
True, the simplist ruby example:
err = $stderr
out = $stdout
open( “logfile.text”, “a” ) do |file|
$stdout = $stderr = file
# … do stuff
end
$stderr = err
$stdout = out
However, if this is a common operation for you, Ruby allows you to
improve on the above by abstracting the functionality and letting you
pull it in. That’s what the require ‘redirect’ solution is about.
Also, please keep in
mind that I am thinking of putting a significant amount of code inside
of the redirection and merging—I would definitely like to avoid the
extra block if at all possible.
Which block is extra, and what is wrong with it?
Also, please note that in my second
example I ``un-merge’’ stdout from stderr when I’m done.
so have all the examples
~ Patrick