Module: Sidekiq::Logstash

Defined in:
lib/sidekiq/logstash.rb,
lib/sidekiq/logstash/version.rb,
lib/sidekiq/logstash/configuration.rb

Defined Under Namespace

Classes: Configuration

Constant Summary collapse

VERSION =
'1.1.0'

Class Method Summary collapse

Class Method Details

.configurationObject



10
11
12
# File 'lib/sidekiq/logstash.rb', line 10

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



14
15
16
# File 'lib/sidekiq/logstash.rb', line 14

def self.configure
  yield(configuration)
end

.setup(opts = {}) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/sidekiq/logstash.rb', line 18

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