Sha256: 7160e40beea0f2ffe3df3149a51cbf98fca5c81ec39d4ed731716173a23c8d56

Contents?: true

Size: 825 Bytes

Versions: 3

Compression:

Stored size: 825 Bytes

Contents

module Lograge
  module Formatters
    class Graylog2
      include Lograge::Formatters::Helpers::MethodAndPath

      def call(data)
        # Cloning because we don't want to mess with the original when mutating keys.
        data_clone = data.clone

        base = {
          short_message: short_message(data_clone)
        }

        # Add underscore to every key to follow GELF additional field syntax.
        data_clone.keys.each do |key|
          data_clone[underscore_prefix(key)] = data_clone[key]
          data_clone.delete(key)
        end

        data_clone.merge(base)
      end

      def underscore_prefix(key)
        "_#{key}".to_sym
      end

      def short_message(data)
        "[#{data[:status]}]#{method_and_path_string(data)}(#{data[:controller]}##{data[:action]})"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lograge-0.11.2 lib/lograge/formatters/graylog2.rb
lograge-0.11.1 lib/lograge/formatters/graylog2.rb
lograge-0.11.0 lib/lograge/formatters/graylog2.rb