From: nobu.nokada@... Date: 2005-07-24T13:26:24+09:00 Subject: Re: Sending stdout to multiple handles Hi, At Sun, 24 Jul 2005 13:05:58 +0900, Daniel Berger wrote in [ruby-talk:149323]: > How can I make it so that when I print to stdout, it actually prints to > both stdout and a file at the same time? Without redefining puts or > print or something similar, that is. Without redefining anything? STDOUT.reopen("|tee output") > I'm trying to get the benchmark package to print to both stdout and a > file at the same time. I've been messing around with various IO > options, but I'm not hitting it, and io-tee seems to be dead. I know nothing about io-tee, though what about this? class IO class Tee attr_reader :ios def initialize(*ios) @ios = ios end def write @ios.dup.each do |f| f.write(str) rescue @ios.delete(f) end end end end $stdout = IO::Tee.new(STDOUT) class Object remove_const(:STDOUT) end STDOUT = $stdout -- Nobu Nakada