1

Ruby を使用してリアルタイムで出力をファイルに記録しようとしています。ログファイルで tail -f を実行して、出力が書き込まれるのを確認できるようにしたいと考えています。現時点では、Ruby スクリプトを停止すると、ファイルにのみ書き込まれます。私がやろうとしていることは単純明快に思えます。

ログファイルを作成します

log = File.open(logFileName, "a")

後で次を使用して書き込みます。

log.puts "#{variable}"

繰り返しますが、ログ ファイルが作成され、正しいエントリがその中にありますが、スクリプトの実行を停止した場合のみです。ログファイルを追跡し、リアルタイムで確認する必要があります。

前もって感謝します!

4

1 に答える 1

3

通常、ファイルの入出力はある程度バッファリングされます。フラグを反転することで、この動作を無効にすることができます。

log.sync = true

flushこれにより、各書き込み後に操作を強制することにより、バッファリングが無効になります。これを有効にすると、次のようなプログラムtail -fでデータをリアルタイムで読み取ることができます。

于 2014-06-19T15:50:43.897 に答える