我正试图了解如何/何时在Heroku中初始化Rails应用程序......
例如,假设我在应用程序的最开头添加了以下日志操作:
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'。这种情况在后续推送时始终如一 - 它将始终显示一个落后的版本的日志消息。如果我重新启动应用程序,则日志消息版本是最新的。任何人都知道为什么会这样吗?
我通过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仪表板中可见)并且变量确实存在。为什么双遍,有没有办法区分代码中的那些不同实例?