From 076e1f52ce1c97a94b3888de2bbc5613d4b02c3e Mon Sep 17 00:00:00 2001 From: Ari Karim Date: Sun, 25 May 2025 11:43:41 +0300 Subject: [PATCH] Enhances logger initialization by introducing a logger adapter for improved compatibility and flexibility --- lib/rabbit_carrots/core.rb | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/rabbit_carrots/core.rb b/lib/rabbit_carrots/core.rb index 78d7ed8..4297092 100644 --- a/lib/rabbit_carrots/core.rb +++ b/lib/rabbit_carrots/core.rb @@ -11,7 +11,7 @@ module RabbitCarrots end def initialize(logger: nil) - @logger = logger || Logger.new(Rails.env.production? ? '/proc/self/fd/1' : $stdout) + @logger = create_logger_adapter(logger || Logger.new(Rails.env.production? ? '/proc/self/fd/1' : $stdout)) @threads = [] @running = true @shutdown_requested = false @@ -115,5 +115,24 @@ module RabbitCarrots logger.error "Bunny session error: #{e.message}" request_shutdown end + + private + + def create_logger_adapter(logger) + return logger if logger.respond_to?(:info) && logger.respond_to?(:error) && logger.respond_to?(:warn) + + adapter = Object.new + def adapter.info(msg) + @logger.write("[INFO] #{msg}\n") + end + def adapter.error(msg) + @logger.write("[ERROR] #{msg}\n") + end + def adapter.warn(msg) + @logger.write("[WARN] #{msg}\n") + end + adapter.instance_variable_set(:@logger, logger) + adapter + end end end