logo       

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

lang.ruby.japanese

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

岩崎です。

>リファレンスマニュアルでは $stdout と $stderr の動作の違
>いを説明するような違いが分かりませんでした。なぜ
>違うのかどなたか教えてください。

質問が間違っている上にまとはずれでした。
$stdout.putsががなぜだめなのかということを聞くべきでした。

で、privateメソッドなので当たり前ということだと思います。
回避策は以下のようなもので良いのでしょうか?
あるいは、もっと素直な方法があるのでしょうか?

defout = Object.new
defout.instance_eval{@ofile=open("log.txt", "w")}
class <<defout
def write(str)
STDOUT.write(str)
@ofile.write(str)
end
public :puts,:print #追加
end
$stdout = defout

$stderr=defout
puts "test"
$stdout.puts "test" #このパターンも同じ動作にしたい。
$stdout.print "test"
$stderr.puts "test err"
$stderr.print "test err"



== Iwasaki ==
Email: ih000667@mb.taiyokogyo.co.jp





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

News | FAQ | advertise