Class: Logfoo::IoAppender

Inherits:
Object
  • Object
show all
Defined in:
lib/logfoo/appenders/io_appender.rb

Instance Method Summary collapse

Constructor Details

#initialize(io = nil, formatter = nil) ⇒ IoAppender

Returns a new instance of IoAppender.



3
4
5
6
7
8
9
10
11
12
# File 'lib/logfoo/appenders/io_appender.rb', line 3

def initialize(io = nil, formatter = nil)
  @io        = io || STDOUT

  if @io.respond_to?(:sync=)
    @io.sync = true
  end

  is_tty     = @io.respond_to?(:tty?) && @io.tty?
  @formatter = formatter || (is_tty ? SimpleFormatter.new : LogfmtFormatter.new)
end

Instance Method Details

#call(entry) ⇒ Object



14
15
16
# File 'lib/logfoo/appenders/io_appender.rb', line 14

def call(entry)
  write @formatter.call(entry)
end

#write(body) ⇒ Object



18
19
20
21
# File 'lib/logfoo/appenders/io_appender.rb', line 18

def write(body)
  @io.write body
  @io.flush
end