Sha256: 6f16eec2dabc29984943669ffa54bac99b2c38a015a5fe099a93a4f53667e226

Contents?: true

Size: 712 Bytes

Versions: 2

Compression:

Stored size: 712 Bytes

Contents

require 'logger'
require 'logstash-event'
require 'active_support'

module Kenny
  module Formatters
    # Formats messages as LogStash::Event
    class LogStashFormatter < ::Logger::Formatter
      include ActiveSupport::TaggedLogging::Formatter

      def call(severity, time, progname, msg)
        msg = { 'message' => msg.is_a?(String) ? msg : msg.inspect } unless msg.is_a?(Hash)

        msg['severity'] = severity if severity
        msg['progname'] = progname if progname

        tags = current_tags

        if tags.any?
          msg['type'] ||= tags.first
          msg['tags'] = tags
        end

        event = LogStash::Event.new(msg)

        "%s\n" % event.to_json
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kenny-0.1.3 lib/kenny/formatters/log_stash_formatter.rb
kenny-0.1.2 lib/kenny/formatters/log_stash_formatter.rb