Sha256: 38d8db110b5cf47b6a254a71131b9182ed55889a5dc825f1eb3773dc1f0f1fac

Contents?: true

Size: 1.75 KB

Versions: 2

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true
require 'lograge'
require 'logstash-logger'

module Europeana
  module Logging
    class Engine < ::Rails::Engine
      # Enable lograge
      initializer 'europeana_logging.enable_lograge' do |app|
        app.config.lograge.enabled = true
      end

      # Configure lograge
      initializer 'europeana_logging.configure_lograge' do |app|
        app.config.lograge.custom_options = lambda do |event|
          {}.tap do |custom|
            if event.payload.key?(:redis_runtime)
              custom[:redis] = event.payload[:redis_runtime].to_f.round(2)
            end
            if event.payload.key?(:session_id)
              custom[:session_id] = event.payload[:session_id]
            end
          end
        end

        app.config.lograge.formatter = Lograge::Formatters::Logstash.new
      end

      # Configure Logstash
      initializer 'europeana_logging.configure_logstash' do |_app|
        LogStashLogger.configure do |config|
          config.customize_event do |event|
            event['level'] = event.remove('severity')
            event['thread'] = Thread.current.object_id.to_s
          end
        end
      end

      # Init app loggers
      initializer 'europeana_logging.set_app_loggers' do |app|
        app.config.logger = LogStashLogger.new(type: :stdout)

        Rails.logger = LogStashLogger.new(type: :stdout)

        ActionController::Base.logger = LogStashLogger.new(type: :stdout)
        ActionController::Base.logger.extend(Europeana::Logging::SessionLogging)
      end

      # Controller concern for session ID logging
      initializer 'europeana_logging.application_controller_log_session_id' do |_app|
        ApplicationController.send :include, Europeana::Logging::LogSessionId
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
europeana-logging-0.2.4 lib/europeana/logging/engine.rb
europeana-logging-0.2.3 lib/europeana/logging/engine.rb