如何在生产模式下在Rails中记录系统命令输出?

时间:2010-11-12 00:16:49

标签: ruby-on-rails ruby

我正在使用system()调用在我的Rails(-v 2.3.5)应用程序中调用C可执行文件。

makefile_path = File.expand_path('./c_executalbe', Rails.root)
system(makefile_path)

在本地计算机上一切正常但由于某种原因,system()调用不会在服务器上运行(dreamhost)。并且log / production.log中没有错误消息。我想在日志中看到该系统调用的返回输出。我怎么能这样做?

提前致谢!

1 个答案:

答案 0 :(得分:4)

请参阅:http://ruby-doc.org/core/classes/Kernel.html#M005960

用法:

output = %x(command)
output = `command`
output = Kernel.send(:`, "command")

您将获得命令输出。

如果command来自变量,就像您的情况一样,您可以插入:

output = %x(#{makefile_path})
output = `#{makefile_path}`
output = Kernel.send(:`, makefile_path)

将其记录到log/production.log

logger.info output
# or
puts output