5

我有以下Procfile:

web: bundle exec rails s -p $PORT -e $RAILS_ENV Puma
action_cable: bundle exec puma -p $ACTIONCABLE_PORT cable/config.ru
sidekiq: bundle exec sidekiq

action_cable进程和 rails 进程都使用通过 .bashrc 变量导出的$ webRAILS_ENV 变量,设置哪个环境 rails 引导。action_cable因此,运行 foreman start 会同时为和加载测试环境web。但是,我希望 actioncable 使用:infoLog Level,并且我希望 web rails 进程使用fatal.

有没有办法可以启动两个进程并使用 ENV 或进程信息来动态设置日志级别?

类似的东西(伪代码):

# environments/test.rb
config.logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT))
if Process.port == 28080
  config.log_level = :info
  Sidekiq::Logging.logger.level = Logger::INFO
else
  config.log_level = :fatal
  Sidekiq::Logging.logger.level = Logger::FATAL
end
4

0 回答 0