Class: Bitlogger::IoLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/bitlogger/io_logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(formatter, additional, io) ⇒ IoLogger

Returns a new instance of IoLogger.

Raises:

  • (ArgumentError)


3
4
5
6
7
8
# File 'lib/bitlogger/io_logger.rb', line 3

def initialize(formatter, additional, io)
  raise ArgumentError, "Io has to respond to :puts and :flush" unless io_valid?(io)
  @formatter  = formatter
  @additional = additional
  @io         = io
end

Instance Method Details

#log(msgs) ⇒ Object

Parameters:

  • msgs (Array<Hash>, Hash)


11
12
13
14
15
16
17
18
# File 'lib/bitlogger/io_logger.rb', line 11

def log(msgs)
  msgs = [msgs] unless msgs.is_a?(Array)
  msgs.each { |msg| @io.puts(@formatter.format_hash(@additional.merge(msg))) }
  @io.flush
rescue => e
  STDERR.puts("Error: #{e.class.name}, #{e.message}")
  return false
end