class Sidekiq::Middleware::Server::Logging

Public Instance Methods

call(worker, item, queue) { || ... } click to toggle source
# File lib/sidekiq/middleware/server/logging.rb, line 6
def call(worker, item, queue)
  Sidekiq::Logging.with_context(log_context(worker, item)) do
    begin
      start = Time.now
      logger.info("start".freeze)
      yield
      logger.info("done: #{elapsed(start)} sec")
    rescue Exception
      logger.info("fail: #{elapsed(start)} sec")
      raise
    end
  end
end

Private Instance Methods

elapsed(start) click to toggle source
# File lib/sidekiq/middleware/server/logging.rb, line 29
def elapsed(start)
  (Time.now - start).round(3)
end
log_context(worker, item) click to toggle source

If we're using a wrapper class, like ActiveJob, use the “wrapped” attribute to expose the underlying thing.

# File lib/sidekiq/middleware/server/logging.rb, line 24
def log_context(worker, item)
  klass = item['wrapped'.freeze] || worker.class.to_s
  "#{klass} JID-#{item['jid'.freeze]}#{" BID-#{item['bid'.freeze]}" if item['bid'.freeze]}"
end
logger() click to toggle source
# File lib/sidekiq/middleware/server/logging.rb, line 33
def logger
  Sidekiq.logger
end