class LogStash::Codecs::Trigger

The “trigger” codec is for reading triggers from a file for later use in trigger-filters.

Public Instance Methods

decode(data) { |event("message" => convert)| ... } click to toggle source
# File lib/logstash/codecs/trigger.rb, line 41
def decode(data)
    yield LogStash::Event.new("message" => @converter.convert(data))
end
encode(event) click to toggle source
# File lib/logstash/codecs/trigger.rb, line 46
def encode(event)
    if event.include?(@trigger_attribute)

        event[@trigger_attribute].each do |trigger|

            dirname = File.dirname(event['path'])
            basename = File.basename(event['path'])

            timestamp = org.joda.time.DateTime.new(trigger[:timestamp])
            triggerfolder = @trigger_folder_prefix + timestamp.toString(@trigger_folder_format);

            path = "#{dirname}/#{triggerfolder}/#{basename}"

            @logger.debug("Path from trigger", :path => path) if @logger.debug?

            new_event = event.clone
            new_event["path"] = path

            @on_event.call(new_event)
        end
    end
end
register() click to toggle source
# File lib/logstash/codecs/trigger.rb, line 35
def register
    @converter = LogStash::Util::Charset.new(@charset)
    @converter.logger = @logger
end