Enhances logger initialization by introducing a logger adapter for improved compatibility and flexibility

This commit is contained in:
Ari Karim 2025-05-25 11:43:41 +03:00
parent aee5a1e3cb
commit 076e1f52ce
No known key found for this signature in database
GPG Key ID: 1A5559E2E32F1805

View File

@ -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