私は次の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 で:info
Log 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