我认为这是一个简单的问题,但无法找到解决方案 . 我将rubd脚本的stdout和stderr重定向到'puts',有时将错误(!)重定向到这样的日志文件中:
bundle exec rake import:long_task --trace >& log/import.log &
但它似乎没有实时刷新 puts
文件,当它获得异常时,它将回溯放在顶部 import.log
. 所以,这不是完美的调试,但它的工作原理 .
我如何实时地将脚本的输出重定向到文件,以确切地看到如果我直接在终端中启动它而不重定向我会看到什么?
使用:Ruby 1.9.2,Rails 3.2,FreeBSD和csh shell .
2 回答
STDOUT.sync = true
如果你不想每次flush
我不确定我完全理解你的问题,但你考虑过使用:
有关详细信息,请参阅IO#flush documentation .