Module: SidekiqUniqueJobs::Logging

Included in:
BatchDelete, SidekiqUniqueJobs::Lock::BaseLock, LockArgs, LockDigest, Locksmith, Middleware, OnConflict::Log, OnConflict::Reschedule, OnConflict::Strategy, Orphans::Observer, Orphans::Reaper, Redis::Entity, UpgradeLocks
Defined in:
lib/sidekiq_unique_jobs/logging.rb,
lib/sidekiq_unique_jobs/logging/middleware_context.rb

Overview

Provides the sidekiq middleware that makes the gem work

Author:

Defined Under Namespace

Modules: Middleware

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



8
9
10
# File 'lib/sidekiq_unique_jobs/logging.rb', line 8

def self.included(base)
  base.send(:extend, self)
end

Instance Method Details

#build_message(message_or_exception, item = nil) ⇒ Object



98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/sidekiq_unique_jobs/logging.rb', line 98

def build_message(message_or_exception, item = nil)
  return nil if message_or_exception.nil?
  return message_or_exception if item.nil?

  message = message_or_exception.dup
  details = item.slice(LOCK, QUEUE, CLASS, JID, LOCK_DIGEST).each_with_object([]) do |(key, value), memo|
    memo << "#{key}=#{value}"
  end
  message << " ("
  message << details.join(" ")
  message << ")"

  message
end

#log_debug(message_or_exception = nil, item = nil) {|String, Exception| ... } ⇒ void

This method returns an undefined value.

Logs a message at debug level

Parameters:

  • message_or_exception (String, Exception) (defaults to: nil)

    the message or exception to log

Yields:

  • (String, Exception)

    the message or exception to use for log message



32
33
34
35
36
# File 'lib/sidekiq_unique_jobs/logging.rb', line 32

def log_debug(message_or_exception = nil, item = nil, &block)
  message = build_message(message_or_exception, item)
  logger.debug(message, &block)
  nil
end

#log_error(message_or_exception = nil, item = nil) {|String, Exception| ... } ⇒ void

This method returns an undefined value.

Logs a message at error level

Parameters:

  • message_or_exception (String, Exception) (defaults to: nil)

    the message or exception to log

Yields:

  • (String, Exception)

    the message or exception to use for log message



77
78
79
80
81
# File 'lib/sidekiq_unique_jobs/logging.rb', line 77

def log_error(message_or_exception = nil, item = nil, &block)
  message = build_message(message_or_exception, item)
  logger.error(message, &block)
  nil
end

#log_fatal(message_or_exception = nil, item = nil) {|String, Exception| ... } ⇒ void

This method returns an undefined value.

Logs a message at fatal level

Parameters:

  • message_or_exception (String, Exception) (defaults to: nil)

    the message or exception to log

Yields:

  • (String, Exception)

    the message or exception to use for log message



92
93
94
95
96
# File 'lib/sidekiq_unique_jobs/logging.rb', line 92

def log_fatal(message_or_exception = nil, item = nil, &block)
  message = build_message(message_or_exception, item)
  logger.fatal(message, &block)
  nil
end

#log_info(message_or_exception = nil, item = nil) {|String, Exception| ... } ⇒ void

This method returns an undefined value.

Logs a message at info level

Parameters:

  • message_or_exception (String, Exception) (defaults to: nil)

    the message or exception to log

Yields:

  • (String, Exception)

    the message or exception to use for log message



47
48
49
50
51
# File 'lib/sidekiq_unique_jobs/logging.rb', line 47

def log_info(message_or_exception = nil, item = nil, &block)
  message = build_message(message_or_exception, item)
  logger.info(message, &block)
  nil
end

#log_warn(message_or_exception = nil, item = nil) {|String, Exception| ... } ⇒ void

This method returns an undefined value.

Logs a message at warn level

Parameters:

  • message_or_exception (String, Exception) (defaults to: nil)

    the message or exception to log

Yields:

  • (String, Exception)

    the message or exception to use for log message



62
63
64
65
66
# File 'lib/sidekiq_unique_jobs/logging.rb', line 62

def log_warn(message_or_exception = nil, item = nil, &block)
  message = build_message(message_or_exception, item)
  logger.warn(message, &block)
  nil
end

#loggerLogger

A convenience method for using the configured gem logger

Returns:

  • (Logger)

See Also:

  • SidekiqUniqueJobs#.logger


19
20
21
# File 'lib/sidekiq_unique_jobs/logging.rb', line 19

def logger
  SidekiqUniqueJobs.logger
end

#logging_contextHash

Setup some variables to add to each log line

Returns:

  • (Hash)

    the context to use for each log line

Raises:

  • (NotImplementedError)


147
148
149
# File 'lib/sidekiq_unique_jobs/logging.rb', line 147

def logging_context
  raise NotImplementedError, "#{__method__} needs to be implemented in #{self.class}"
end

#with_configured_loggers_context { ... } ⇒ void

This method returns an undefined value.

Attempt to setup context aware logging for the given logger

Yields:



137
138
139
# File 'lib/sidekiq_unique_jobs/logging.rb', line 137

def with_configured_loggers_context(&block)
  logger_method.call(logging_context, &block)
end

#with_logging_contextvoid

This method returns an undefined value.

Wraps the middleware logic with context aware logging

Yield Returns:

  • (void)

    yield to the middleware instance



121
122
123
124
125
126
127
# File 'lib/sidekiq_unique_jobs/logging.rb', line 121

def with_logging_context
  with_configured_loggers_context do
    return yield
  end

  nil # Need to make sure we don't return anything here
end