|
[ruby-list:42099] Re: puts,printの出力をファイルにも出力するには: msg#00130lang.ruby.japanese
岩崎です。 「puts,print の出力先をファイルにも行う方法」に関して多数 の回答をありがとうございました。回答を自分なりに分析した ところ、基本的には4つの方法に分類されました。 1.$stdout.writeの再定義 (市川 様) 2.$stdoutへのwriteメソッドをもつオブジェクトの代入。 a)自分で定義したクラスのインスタンスの代入(永井様) b)writeを特異メッソドとして定義したオブジェクトを代入(まつもと 様) 3.ファイルの出力を標準出力へコピーする。(rubikitch 様) 4.パイプ利用 [ms-win32ではruby 1.9要](URABE Shyouhei 様) 私の状況では子プロセスへの出力は無視できる状況でしたので 市川様の案がもっとも作業量が少なくなりますが、途中でファ イルへの出力を止めることが簡単ですので、まつもと 様の案 を採用することとしました。 ところで、まつもと 様の案を $stterr に適用しようとすると private method `print' called for #<Object:0x2ab6ec8 @ofile=#<File:log.txt>> (NoMethodError) と出て上手くいきません。 リファレンスマニュアルでは $stdout と $stderr の動作の違 いを説明するような違いが分かりませんでした。なぜ 違うのかどなたか教えてください。 テストしたコードを添付します。 -------------------------- deferr = Object.new deferr.instance_eval{@ofile=open("log.txt", "w")} class <<deferr def write(str) STDERR.write(str) @ofile.write(str) end end $stderr = deferr $stderr.print "test" == Iwasaki == Email: ih000667@mb.taiyokogyo.co.jp
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42098] Re: 正規表現にiオプションの漢字に対する影響は?, 岩崎 弘孝 |
|---|---|
| Next by Date: | [ruby-list:42100] Re: 正規表現にiオプションの漢字に対する影響は?, KIMURA Koichi |
| Previous by Thread: | [ruby-list:42098] Re: 正規表現にiオプションの漢字に対する影響は?, 岩崎 弘孝 |
| Next by Thread: | [ruby-list:42102] Re: 正規表現にiオプションの漢字に対する影響は?, 岩崎 弘孝 |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |