1. ホーム
  2. ruby-on-rails

[解決済み] rails - コンソール出力をファイルにリダイレクトする

2023-04-21 19:06:26

質問

bashコンソールで、このようにすると。

cd mydir
ls -l > mydir.txt

演算子 > は標準入力をキャプチャしてファイルにリダイレクトするので、ファイルのリストを mydir.txt にファイルのリストを取得します。

railsのコンソールで同じようなことをする方法はないでしょうか?

私はたくさんのプリント(~8k行)を生成するrubyステートメントを持っていて、私はそれを完全に見ることができるようにしたいのですが、コンソールは最後の1024行ほどを"remember"するだけです。だから、私はファイルにリダイレクトすることを考えました - 誰もがより良いオプションを知っているなら、私はすべての耳を傾けます。

どのように解決するのですか?

オーバーライド $stdout を使って、コンソール出力をリダイレクトすることができます。

$stdout = File.new('console.out', 'w')

また、これを一度呼び出す必要があるかもしれません。

$stdout.sync = true

これはすべての出力をファイルにリダイレクトします。一時的に出力をリダイレクトさせる場合は $stdout の元の値を保存しておき、元に戻せるようにしてください。