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

标签 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 中没有错误信息。我想在日志中看到该系统调用的返回输出。我该怎么做?

提前致谢!

最佳答案

参见: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

关于ruby-on-rails - 如何在生产模式下在 Rails 中记录系统命令输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160537/

相关文章:

ruby-on-rails - rails/ruby "and return false"语法

ruby-on-rails - 更改 Rails 路由中的 id 参数

ruby-on-rails - Rails 模型中的条件回调?

ruby - 使 Ruby 字符串不可变

ruby - 启动一个进程并在 ruby​​ 脚本退出后保持其运行

ruby-on-rails - 保存图表失败!验证 Graphviz 是否已安装并位于您的路径中,或使用 filetype=dot

ruby-on-rails - 执行命令 rake :db:schema:dump

ruby-on-rails - Heroku:如何将 seeds.rb 推送到现有的 Rails 应用程序?

javascript - 如何让 jQuery 记住 Rails 应用程序中的状态?

ruby - 无法在 Mac OS X 10.9 上的 1 个 gemsets 中安装 gem-wrappers gem