lib/fluent/plugin/out_split.rb in fluent-plugin-split-0.0.3 vs lib/fluent/plugin/out_split.rb in fluent-plugin-split-0.0.4
- old
+ new
@@ -5,40 +5,45 @@
def initialize
super
end
+ # Define `router` method of v0.12 to support v0.10 or earlier
+ unless method_defined?(:router)
+ define_method("router") { Fluent::Engine }
+ end
+
config_param :output_tag, :string
config_param :output_key, :string
- config_param :format, :string, :default => "csv"
+ config_param :format, :string, default: 'csv'
config_param :key_name, :string
- config_param :keep_keys, :string, :default => ""
+ config_param :keep_keys, :string, default: ''
def configure(conf)
super
- @keep_keys_array = @keep_keys.split(",")
- if @format == "csv"
+ @keep_keys_array = @keep_keys.split(',')
+ if @format == 'csv'
@separator = ','
- elsif @format == "tsv"
+ elsif @format == 'tsv'
@separator = '\t'
- elsif @format == "space"
+ elsif @format == 'space'
@separator = /[\s ]/
else
@separator = @format
end
end
def emit(tag, es, chain)
- es.each { |time, record|
+ es.each do |time, record|
next if record[@key_name].nil?
- record[@key_name].split(@separator).each{|item|
- result = {@output_key => item}
- record.each {|key,value|
+ record[@key_name].split(@separator).each do|item|
+ result = { @output_key => item }
+ record.each do|key, value|
result[key] = value if @keep_keys_array.include?(key)
- }
- Engine.emit(output_tag, time, result)
- }
- }
+ end
+ router.emit(output_tag, time, result)
+ end
+ end
chain.next
rescue => e
$log.warn e.message
$log.warn e.backtrace.join(', ')
end