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 プロセスの両方が、web.bashrc 変数を介してエクスポートされた $RAILS_ENV 変数を使用し、レールが起動する環境を設定します。そのため、 foreman start を実行すると、action_cableとの両方のテスト環境が読み込まれますweb。ただし、actioncable で:infoLog Level を使用し、web rails process で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