class Fluent::JVMGCLogInput
Public Instance Methods
configure_parser(conf)
click to toggle source
# File lib/fluent/plugin/in_jvm_gclog.rb, line 23 def configure_parser(conf) @parser = JVMGCLog.new @hostname = `hostname -s`.strip end
parse_lines(lines)
click to toggle source
# File lib/fluent/plugin/in_jvm_gclog.rb, line 28 def parse_lines(lines) es = MultiEventStream.new chunks = @parser.recognize_chunks(lines) records = @parser.parse_chunks(chunks) records.each { |record| begin time = record.delete("time") record["host"] = @hostname if time && record es.add(time, record) else log.warn "pattern not match: #{record.inspect}" end rescue => e log.warn record, :error => e.to_s log.debug_backtrace(e.backtrace) end } es end
receive_lines(lines, tail_watcher = nil)
click to toggle source
# File lib/fluent/plugin/in_jvm_gclog.rb, line 49 def receive_lines(lines, tail_watcher = nil) es = parse_lines(lines) unless es.empty? tag = if @tag_prefix || @tag_suffix @tag_prefix + tail_watcher.tag + @tag_suffix else @tag end begin if defined? router router.emit_stream(tag, es) else Engine.emit_stream(tag, es) end rescue # ignore errors. Engine shows logs and backtraces. end end end