Sha256: eef4a7a2aae6f4eb2ee93c6f53486cd8b69300d546d674bd3be96e262cdc1982
Contents?: true
Size: 1.25 KB
Versions: 7
Compression:
Stored size: 1.25 KB
Contents
# This Resque extension changes the resque default logger to monologger # and formats the log in json format. # # Monologger supports printing logs in trap block. # module Resque module Plugins module CustomLogger def before_perform(*args) marker = SecureRandom.uuid logger = MonoLogger.new(STDOUT) logger.level = Rails.application.config.log_level logger.formatter = proc do |serverity, datetime, progname, msg| begin msg = JSON.parse(msg) rescue JSON::ParserError => ex end require 'json' JSON.dump( trace_id: marker, level: serverity, timestamp: datetime.strftime('%FT%T.%6N'), pid: Process.pid, msg: msg ) + "\n" end Rails.logger = logger case args.class.to_s when "Array" if args.first.class == Hash data = args.first.merge({:worker_class => self.to_s}) else data = {:worker_class => self.to_s, :args => args} end when "Hash" data = args.merge({:worker_class => self.to_s}) end Rails.logger.info(data.to_json) if data.present? end end end end
Version data entries
7 entries across 7 versions & 1 rubygems