Sha256: ff7a4742624173cc32b9a9c9a8e01206bdc8d9a47e0049865e79129fb85f520f

Contents?: true

Size: 1.34 KB

Versions: 3

Compression:

Stored size: 1.34 KB

Contents

require 'sidekiq/logstash/configuration'
require 'sidekiq/logstash/version'
require 'sidekiq/middleware/server/logstash_logging'
require 'sidekiq/logging/logstash_formatter'
require 'sidekiq/logging/argument_filter'
require 'sidekiq/logstash_job_logger'

module Sidekiq
  module Logstash
    def self.configuration
      @configuration ||= Configuration.new
    end

    def self.configure
      yield(configuration)
    end

    def self.setup(opts = {})
      # Calls Sidekiq.configure_server to inject logics
      Sidekiq.configure_server do |config|
        # Remove default Sidekiq error_handler that logs errors
        config.error_handlers.delete_if { |h| h.is_a?(Sidekiq::ExceptionHandler::Logger) }

        # Add logstash support
        # The logging server middleware was removed in Sidekiq 5.0.0, see: https://github.com/mperham/sidekiq/blob/master/Changes.md
        if Sidekiq::Middleware::Server.const_defined?(:Logging)
          config.server_middleware do |chain|
            chain.add Sidekiq::Middleware::Server::LogstashLogging
            chain.remove Sidekiq::Middleware::Server::Logging
          end
        else
          Sidekiq.options[:job_logger] = Sidekiq::LogstashJobLogger
        end

        # Set custom formatter for Sidekiq logger
        config.logger.formatter = Sidekiq::Logging::LogstashFormatter.new
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sidekiq-logstash-1.1.0 lib/sidekiq/logstash.rb
sidekiq-logstash-1.0.1 lib/sidekiq/logstash.rb
sidekiq-logstash-1.0.0 lib/sidekiq/logstash.rb