Module: Kafkr

Defined in:
lib/kafkr.rb,
lib/kafkr/log.rb,
lib/kafkr/version.rb,
lib/kafkr/consumer.rb,
lib/kafkr/producer.rb,
lib/kafkr/encryptor.rb,
lib/kafkr/message_broker.rb

Defined Under Namespace

Modules: Producer Classes: Consumer, Encryptor, Error, Log, LostConnection, MessageBroker

Constant Summary collapse

LOG_FILE_PATH =

Default log file path

"/var/log/kafkr.log"
VERSION =
"0.22.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.log_file_pathObject



26
27
28
# File 'lib/kafkr.rb', line 26

def log_file_path
  @log_file_path || LOG_FILE_PATH
end

Class Method Details

.configurationObject



57
58
59
# File 'lib/kafkr.rb', line 57

def self.configuration
  @configuration ||= OpenStruct.new
end

.configureObject



61
62
63
64
65
# File 'lib/kafkr.rb', line 61

def self.configure
  yield(configuration)
rescue => e
  logger.error("Configuration error: #{e.message}")
end

.configure_loggerObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/kafkr.rb', line 30

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

.loggerObject



22
23
24
# File 'lib/kafkr.rb', line 22

def logger
  @logger ||= configure_logger
end

.write(message, unique_id = nil) ⇒ Object Also known as: log, output, info, record, trace



41
42
43
44
45
# File 'lib/kafkr.rb', line 41

def write(message, unique_id = nil)
  logger.info(message)
rescue IOError => e
  logger.error("Failed to write log: #{e.message}")
end