mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
Better logging, fixes GH-55
This commit is contained in:
parent
f2da181765
commit
bf377d44e8
3 changed files with 38 additions and 1 deletions
27
lib/sidekiq/middleware/server/logging.rb
Normal file
27
lib/sidekiq/middleware/server/logging.rb
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
module Sidekiq
|
||||||
|
module Middleware
|
||||||
|
module Server
|
||||||
|
class Logging
|
||||||
|
def call(*args)
|
||||||
|
static = "#{args[0].class.to_s} MSG-#{args[0].object_id.to_s(36)}" if logger.info?
|
||||||
|
start = Time.now
|
||||||
|
logger.info { "#{static} start" }
|
||||||
|
yield
|
||||||
|
logger.info { "#{static} done: #{elapsed(start)} sec" }
|
||||||
|
rescue
|
||||||
|
logger.info { "#{static} fail: #{elapsed(start)} sec" }
|
||||||
|
raise
|
||||||
|
end
|
||||||
|
|
||||||
|
def elapsed(start)
|
||||||
|
(Time.now - start).to_f.round(3)
|
||||||
|
end
|
||||||
|
|
||||||
|
def logger
|
||||||
|
Sidekiq::Util.logger
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -5,6 +5,7 @@ require 'sidekiq/middleware/server/active_record'
|
||||||
require 'sidekiq/middleware/server/exception_handler'
|
require 'sidekiq/middleware/server/exception_handler'
|
||||||
require 'sidekiq/middleware/server/unique_jobs'
|
require 'sidekiq/middleware/server/unique_jobs'
|
||||||
require 'sidekiq/middleware/server/failure_jobs'
|
require 'sidekiq/middleware/server/failure_jobs'
|
||||||
|
require 'sidekiq/middleware/server/logging'
|
||||||
|
|
||||||
module Sidekiq
|
module Sidekiq
|
||||||
class Processor
|
class Processor
|
||||||
|
@ -18,6 +19,7 @@ module Sidekiq
|
||||||
def self.default_middleware
|
def self.default_middleware
|
||||||
Middleware::Chain.new do |m|
|
Middleware::Chain.new do |m|
|
||||||
m.add Middleware::Server::ExceptionHandler
|
m.add Middleware::Server::ExceptionHandler
|
||||||
|
m.add Middleware::Server::Logging
|
||||||
m.add Middleware::Server::UniqueJobs
|
m.add Middleware::Server::UniqueJobs
|
||||||
m.add Middleware::Server::ActiveRecord
|
m.add Middleware::Server::ActiveRecord
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,10 +6,18 @@ module Sidekiq
|
||||||
#
|
#
|
||||||
module Util
|
module Util
|
||||||
|
|
||||||
|
class Pretty < Logger::Formatter
|
||||||
|
# Provide a call() method that returns the formatted message.
|
||||||
|
def call(severity, time, program_name, message)
|
||||||
|
"#{time.utc.iso8601} #{Process.pid} TID-#{Thread.current.object_id.to_s(36)} #{severity}: #{message}\n"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def self.logger
|
def self.logger
|
||||||
@logger ||= begin
|
@logger ||= begin
|
||||||
log = Logger.new(STDERR)
|
log = Logger.new(STDOUT)
|
||||||
log.level = Logger::INFO
|
log.level = Logger::INFO
|
||||||
|
log.formatter = Pretty.new
|
||||||
log
|
log
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue