Module: Sidekiq::Logstash

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

Overview

Main level module for Sidekiq::Logstash. Provides integration between Sidekiq and Logstash by changing the way Sidekiq jobs are logged.

Defined Under Namespace

Classes: Configuration

Constant Summary collapse

VERSION =
'3.2.1'

Class Method Summary collapse

Class Method Details

.configurationObject



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

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

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

Yields:



17
18
19
# File 'lib/sidekiq/logstash.rb', line 17

def self.configure
  yield(configuration)
end

.setup(_opts = {}) ⇒ Object



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

def self.setup(_opts = {})
  # Calls Sidekiq.configure_server to inject logics
  Sidekiq.configure_server do |config|
    require 'sidekiq/logstash_job_logger'

    # Remove default, noisy error handler,
    # unless LogStash.configuration.keep_default_error_handler is set to true
    unless configuration.keep_default_error_handler
      config.error_handlers.delete(Sidekiq::Config::ERROR_HANDLER)
      # Insert a no-op error handler to prevent Sidekiq from logging to STDOUT
      # because of empty error_handlers (see link).
      # https://github.com/mperham/sidekiq/blob/02153c17360e712d9a94c08406fe7c057c4d7635/lib/sidekiq/config.rb#L258
      config.error_handlers << proc {}
    end

    # Add logstash support
    config[:job_logger] = Sidekiq::LogstashJobLogger
    # Set custom formatter for Sidekiq logger
    config.logger.formatter = Sidekiq::Logging::LogstashFormatter.new
  end
end