logo       

[ruby-list:42073] Re: puts,printの出力をファイルにも出力するには: msg#00104

lang.ruby.japanese

Subject: [ruby-list:42073] Re: puts,printの出力をファイルにも出力するには

From: 岩崎 弘孝 <IH000667-Hi7X7xagcuRnb2RyOFEZTHf5DAMn2ifp@xxxxxxxxxxxxxxxx>
Subject: [ruby-list:42063] puts,printの出力をファイルにも出力するには
Date: Fri, 21 Apr 2006 10:53:20 +0900

> 既存のスクリプトでputs,printを多用しています。
> それらの出力をファイル*にも*書き出したいと思っています。

とてもつまらない方法ですが、ファイルに書き出した後で標準出力に書き出すというのは?
この方法でprint,puts,systemなどの出力がファイルに書き出されます。

class << IO
# Redirect stdout to STDOUT and executes the block.
def redirect(stdout)
begin
stdout_sv = STDOUT.dup
STDOUT.reopen(stdout)
yield
ensure
STDOUT.flush
STDOUT.reopen(stdout_sv)
end
end

def tee(filename, &block)
File.open(filename, "w+") do |fio|
redirect(fio, &block)
fio.rewind
print fio.read
end
end

end

require 'tmpdir'


IO.tee("#{Dir.tmpdir}/output") { # 書き出すファイル
puts "puts to file1"
system "echo system to file1"
}
puts "puts to stdout"


--
rubikitch
http://www.rubyist.net/~rubikitch/




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise