33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/logstash/filters/list2fields.rb', line 33
def filter(event)
input = event.get(@source)
if !input.nil? && (input.is_a? Enumerable)
input.each do |entry|
begin
@logger.warn(entry.to_a.to_s)
if @access_by_name
if entry.is_a?(::Hash) if !entry[@key].nil?
new_key = @prefix.to_s + entry[@key].to_s
value = entry[@value]
@logger.info("Adding new field " + new_key + " with value " + value)
else new_key = @prefix.to_s + entry[@key.to_sym].to_s
value = entry[@value.to_sym]
@logger.info("Adding new field " + new_key + ", value " + value)
end
event.set(new_key, value)
else @logger.warn("Data structure not supported. " + entry.inspect.to_s)
end
else
if entry.is_a?(::Hash) new_key = @prefix.to_s + entry.keys[0].to_s
event.set(new_key, entry.values[0])
else @logger.warn("Data structure not supported. " + entry.inspect.to_s)
end
end rescue
@logger.debug("Could not find key " + @key + " in incoming data, please check your config. ")
end
end if @remove_source
event.remove(@source)
end
end end
|