Module: LogStash::Util::Decorators
- Extended by:
- Decorators
- Includes:
- Loggable
- Included in:
- Decorators
- Defined in:
- lib/logstash/util/decorators.rb
Overview
Decorators provides common manipulation on the event data.
Instance Method Summary collapse
-
#add_fields(fields, event, pluginname) ⇒ Object
fields is a hash of field => value where both ‘field` and `value` can use sprintf syntax.
-
#add_tags(new_tags, event, pluginname) ⇒ Object
tags is an array of string.
Methods included from Loggable
included, #logger, #slow_logger
Instance Method Details
#add_fields(fields, event, pluginname) ⇒ Object
fields is a hash of field => value where both ‘field` and `value` can use sprintf syntax.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/logstash/util/decorators.rb', line 14 def add_fields(fields,event, pluginname) fields.each do |field, value| field = event.sprintf(field) value = Array(value) value.each do |v| v = event.sprintf(v) if event.include?(field) # note below that the array field needs to be updated then reassigned to the event. # this is important because a construct like event[field] << v will not work # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140 a = Array(event.get(field)) a << v event.set(field, a) else event.set(field, v) end self.logger.debug? and self.logger.debug("#{pluginname}: adding value to field", "field" => field, "value" => value) end end end |
#add_tags(new_tags, event, pluginname) ⇒ Object
tags is an array of string. sprintf syntax can be used.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/logstash/util/decorators.rb', line 36 def (, event, pluginname) return if .empty? = Array(event.get("tags")) # note that Array(nil) => [] .each do |new_tag| new_tag = event.sprintf(new_tag) self.logger.debug? and self.logger.debug("#{pluginname}: adding tag", "tag" => new_tag) # note below that the tags array field needs to be updated then reassigned to the event. # this is important because a construct like event["tags"] << tag will not work # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140 << new_tag #unless tags.include?(new_tag) end event.set("tags", ) end |