了解Heroku上的Rails应用程序初始化

时间:2013-09-26 13:48:22

标签: ruby-on-rails heroku

我正试图了解如何/何时在Heroku中初始化Rails应用程序......

示例1

例如,假设我在应用程序的最开头添加了以下日志操作:

config / application.rb中的

module Tester
  class Application < Rails::Application

    test_logger = Logger.new(STDOUT)
    test_logger.info('STARTING APP - VERSION 1')

如果我然后在本地运行我的应用程序,我会立即看到该日志消息:

$ rails server
INFO -- : STARTING APP - VERSION 1

大。现在让我们推进Heroku:

git push heroku master

该应用程序部署并启动。但是看看Papertrail日志,没有消息。

好的,我尝试重新启动应用程序:

heroku restart

现在日志消息 显示。

接下来,我增加版本号并再次推送到Heroku。这一次,我看到了日志消息,但是显示'VERSION 1'而不是'VERSION 2'。这种情况在后续推送时始终如一 - 它将始终显示一个落后的版本的日志消息。如果我重新启动应用程序,则日志消息版本是最新的。任何人都知道为什么会这样吗?

示例2

我通过Heroku CLI设置了ENV值: heroku config:设置TEST_VAR =某事

并将代码放在我的application.rb文件中以读取它: 模块测试器   class Application&lt;导轨::应用

config.before_configuration do
  test_logger.info(ENV['TEST_VALUE'])
end

当我部署到Heroku时,呼叫被击中两次。第一次,它被记录到我的终端屏幕,并且ENV变量不存在。第二次,它被记录到Heroku的系统(在我的Papertrail仪表板中可见)并且变量确实存在。为什么双遍,有没有办法区分代码中的那些不同实例?

0 个答案:

没有答案