lib/kafkr.rb in kafkr-0.21.0 vs lib/kafkr.rb in kafkr-0.22.0

- old
+ new

@@ -1,45 +1,52 @@ -# frozen_string_literal: true require "pry" require "logger" require "openssl" require "securerandom" require "ostruct" require "gibberish" +# Assuming the relative paths are correct and these files exist. require_relative "kafkr/encryptor" require_relative "kafkr/message_broker" require_relative "kafkr/log" require_relative "kafkr/consumer" require_relative "kafkr/producer" require_relative "kafkr/version" module Kafkr + LOG_FILE_PATH = "/var/log/kafkr.log" # Default log file path + class << self + attr_writer :log_file_path + def logger @logger ||= configure_logger end - def configure_logger(output = STDOUT) - begin - @logger = ::Logger.new(output) - rescue Errno::EACCES, Errno::ENOENT => e - @logger = ::Logger.new(STDOUT) - @logger.error("Could not open log file: #{e.message}") - end - @logger.level = ::Logger::DEBUG - @logger + def log_file_path + @log_file_path || LOG_FILE_PATH end + def configure_logger + logger = ::Logger.new(log_file_path) + logger.level = ::Logger::DEBUG + logger + rescue Errno::EACCES, Errno::ENOENT => e + # Fallback to STDOUT only if file creation fails, can be removed to strictly enforce file logging + logger = ::Logger.new(STDOUT) + logger.error("Could not open log file: #{e.message}") + logger + end + def write(message, unique_id = nil) - begin - logger.info(message) - rescue IOError => e - @logger.error("Failed to write log: #{e.message}") - end + logger.info(message) + rescue IOError => e + logger.error("Failed to write log: #{e.message}") end + # Maintaining existing method aliases alias_method :log, :write alias_method :output, :write alias_method :info, :write alias_method :record, :write alias_method :trace, :write @@ -54,7 +61,6 @@ def self.configure yield(configuration) rescue => e logger.error("Configuration error: #{e.message}") end -end - +end \ No newline at end of file