Class: Fluent::StdoutExOutput

Inherits:
Output
  • Object
show all
Defined in:
lib/fluent/plugin/out_stdout_ex.rb

Constant Summary collapse

OUTPUT_PROCS =
{
  :json => Proc.new {|record| Yajl.dump(record) },
  :hash => Proc.new {|record| record.to_s },
}

Instance Method Summary collapse

Instance Method Details

#configure(conf) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
# File 'lib/fluent/plugin/out_stdout_ex.rb', line 39

def configure(conf)
  super
  @output_proc = OUTPUT_PROCS[@output_type]
  @format_proc =
    if @format == "ltsv"
      Proc.new {|time, tag, record| "current_time:#{Time.now.localtime}\ttime:#{Time.at(time).localtime}\ttag:#{tag}\trecord:#{@output_proc.call(record)}\n" }
    else
      # [info]: is a fake ;-)
      Proc.new {|time, tag, record| "#{Time.now.localtime} [info]: #{Time.at(time).localtime} #{tag}: #{@output_proc.call(record)}\n" }
    end
end

#emit(tag, es, chain) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/fluent/plugin/out_stdout_ex.rb', line 51

def emit(tag, es, chain)
  es.each {|time,record|
    $log.write @format_proc.call(time, tag, record)
  }
  $log.flush

  chain.next
end