From df04e99447c4428e9517928c631a62c2756e49b3 Mon Sep 17 00:00:00 2001 From: BenClaw Date: Sun, 17 May 2026 18:49:13 +0200 Subject: [PATCH] fix(action_cable): ensure logger is set for upgraded Rails app - ActionCable::TaggedLoggerProxy crashes with NoMethodError when logger is nil (common in apps upgraded from older Rails) - Add after_initialize hook to guarantee ActionCable.server.config.logger falls back to Rails.logger or --- config/initializers/action_cable.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 config/initializers/action_cable.rb diff --git a/config/initializers/action_cable.rb b/config/initializers/action_cable.rb new file mode 100644 index 00000000..ea50c416 --- /dev/null +++ b/config/initializers/action_cable.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +# Ensure ActionCable has a logger in all environments. +# In apps upgraded from older Rails versions, the logger chain +# may not propagate to ActionCable out of the box, causing: +# NoMethodError (undefined method 'info' for nil) +# in ActionCable::Connection::TaggedLoggerProxy#log +# +Rails.application.config.after_initialize do + ActionCable.server.config.logger ||= Rails.logger || ActiveSupport::Logger.new($stdout) + ActionCable.server.config.logger.level = Rails.logger&.level || Logger::INFO +end