lib/logstash/codecs/edn_lines.rb in logstash-codec-edn_lines-3.0.6 vs lib/logstash/codecs/edn_lines.rb in logstash-codec-edn_lines-3.1.0

- old
+ new

@@ -1,12 +1,25 @@ require "logstash/codecs/base" require "logstash/codecs/line" require "logstash/util" +require 'logstash/plugin_mixins/event_support/event_factory_adapter' +require 'logstash/plugin_mixins/validator_support/field_reference_validation_adapter' + class LogStash::Codecs::EDNLines < LogStash::Codecs::Base + + extend LogStash::PluginMixins::ValidatorSupport::FieldReferenceValidationAdapter + + include LogStash::PluginMixins::EventSupport::EventFactoryAdapter + config_name "edn_lines" + # Defines a target field for placing decoded fields. + # If this setting is omitted, data gets stored at the root (top level) of the event. + # + # NOTE: the target is only relevant while decoding data into a new event. + config :target, :validate => :field_reference def register require "edn" end @@ -18,13 +31,13 @@ public def decode(data) @lines.decode(data) do |event| begin - yield LogStash::Event.new(EDN.read(event.get("message"))) + yield targeted_event_factory.new_event(EDN.read(event.get("message"))) rescue => e @logger.warn("EDN parse failure. Falling back to plain-text", :error => e, :data => data) - yield LogStash::Event.new("message" => data) + yield event_factory.new_event("message" => data) end end end public