Pertanyaan Verifikasi log khusus untuk proses Actioncable


Saya punya Procfile berikut:

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

Keduanya action_cable proses dan web proses rel menggunakan variabel $ RAILS_ENV yang diekspor melalui variabel .bashrc, pengaturan boot rel lingkungan mana. Jadi, menjalankan mandor memulai banyak menguji lingkungan untuk keduanya action_cable dan web. Namun, saya ingin menggunakan actioncable :info Log Level dan saya ingin proses web rails digunakan fatal.

Apakah ada cara saya dapat mem-boot kedua proses dan menggunakan ENV atau memproses informasi untuk mengatur tingkat log secara dinamis?

Sesuatu seperti (pseudo code):

# 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

5
2018-06-15 18:17


asal


Jawaban: