Sha256: ef04177acc13afdca02a6376c30cab2fdca84940e3be0ad3b29aeb9f9b8bded4

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

require "fluent/plugin/formatter"
require "fluent/plugin/gelf_plugin_util"
require "yajl"

module Fluent
  module TextFormatter
    class GelfFormatter < Formatter

      unless method_defined?(:log)
        define_method('log') { $log }
      end

      Plugin.register_formatter("gelf", self)

      include Fluent::GelfPluginUtil

      config_param :use_record_host, :bool, :default => true
      config_param :add_msec_time, :bool, :default => false
      config_param :max_bytes, :integer, :default => 32000

      def configure(conf)
        super(conf)
      end

      def format(tag, time, record)

        begin

          gelfentry = make_gelfentry(
            tag,time,record,
            {
              :use_record_host => @use_record_host,
              :add_msec_time => @add_msec_time,
              :max_bytes => @max_bytes
            }
          )

          Yajl::Encoder.encode(make_gelfentry)

        rescue Exception => e
          log.error sprintf(
            'Error trying to serialize %s: %s',
            record.to_s.force_encoding('UTF-8'),
            e.message.to_s.force_encoding('UTF-8')
          )
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluent-plugin-gelf-best-1.3.4 lib/fluent/plugin/formatter_gelf.rb