如何使用Ruby on Bluemix写入stdout?

时间:2015-10-08 14:22:08

标签: ruby ibm-cloud

我正在使用Bluemix Ruby buildpack。 我在我的主* .rb文件中添加了一些put行,但在拖尾日志时没有出现:

cf logs myapp

在搜索文档时,我在developerWorks上发现this帖子,建议将运行时设置为开发模式。

我尝试过:

cf set-env myapp RAILS_ENV development

并添加到代码中:

ENV['RAILS_ENV'] = 'development'

但日志中没有任何内容。

还尝试了Sinatra选项(更改代码后),结果相同:

set :environment, :development
set :logging, true

一个有趣的事情是,如果我停止应用程序,那么在FATAL SignalException:SIGTERM错误的堆栈跟踪之后会出现所有我的看跌期权。它似乎是缓冲区刷新争用或类似的东西?

有什么建议吗?谢谢!

2 个答案:

答案 0 :(得分:3)

您可以将以下行添加到config.ru文件中。这将禁用对stdout的缓冲,并允许您的puts命令stdout在日志输出中正确显示。

$stdout.sync = true

请参阅What STDOUT.sync = true means?上的答案,了解有关如何使用缓冲区的更多详细信息。

答案 1 :(得分:-1)