我有以下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 变量导出的$ web
RAILS_ENV 变量,设置哪个环境 rails 引导。action_cable
因此,运行 foreman start 会同时为和加载测试环境web
。但是,我希望 actioncable 使用:info
Log 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