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