Sha256: 4d52367bda0d39544209c4cb7b15c7c11939f2f9e0599c3716cf3938146d100d

Contents?: true

Size: 887 Bytes

Versions: 4

Compression:

Stored size: 887 Bytes

Contents

# encoding: utf-8
require "logstash/filters/base"
require "logstash/namespace"

# The clone filter is for duplicating events.
# A clone will be made for each type in the clone list.
# The original event is left unchanged.
class LogStash::Filters::Clone < LogStash::Filters::Base

  config_name "clone"
  milestone 2

  # A new clone will be created with the given type for each type in this list.
  config :clones, :validate => :array, :default => []

  public
  def register
    # Nothing to do
  end

  public
  def filter(event)
    return unless filter?(event)
    @clones.each do |type|
      clone = event.clone
      clone["type"] = type
      filter_matched(clone)
      @logger.debug("Cloned event", :clone => clone, :event => event)

      # Push this new event onto the stack at the LogStash::FilterWorker
      yield clone
    end
  end

end # class LogStash::Filters::Clone

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
logstash-filter-clone-0.1.2 lib/logstash/filters/clone.rb
logstash-filter-clone-0.1.1 lib/logstash/filters/clone.rb
logstash-filter-clone-0.1.0 lib/logstash/filters/clone.rb
logstash-lib-1.3.2 lib/logstash/filters/clone.rb