/usr/lib/ruby/vendor_ruby/amqp/deprecated/logger.rb is in ruby-amqp 0.9.5-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | # encoding: utf-8
module AMQP
# @private
class Logger
def initialize(*args, &block)
opts = args.pop if args.last.is_a? Hash
opts ||= {}
printer(block) if block
@prop = opts
@tags = ([:timestamp] + args).uniq
end
attr_reader :prop
alias :base :prop
def log(severity, *args)
opts = args.pop if args.last.is_a? Hash and args.size != 1
opts ||= {}
opts = @prop.clone.update(opts)
data = args.shift
data = {:type => :exception,
:name => data.class.to_s.intern,
:backtrace => data.backtrace,
:message => data.message} if data.is_a? Exception
(@tags + args).each do |tag|
tag = tag.to_sym
case tag
when :timestamp
opts.update :timestamp => Time.now
when :hostname
@hostname ||= { :hostname => `hostname`.strip }
opts.update @hostname
when :process
@process_id ||= { :process_id => Process.pid,
:process_name => $0,
:process_parent_id => Process.ppid,
:thread_id => Thread.current.object_id }
opts.update :process => @process_id
else
(opts[:tags] ||= []) << tag
end
end
opts.update(:severity => severity,
:msg => data)
print(opts)
unless Logger.disabled?
AMQP::Channel.new.fanout('logging', :durable => true).publish Marshal.dump(opts)
end
opts
end
alias :method_missing :log
def print(data = nil, &block)
if block
@printer = block
elsif data.is_a? Proc
@printer = data
elsif data
(pr = @printer || self.class.printer) and pr.call(data)
else
@printer
end
end
alias :printer :print
def self.printer &block
@printer = block if block
@printer
end
def self.disabled?
!!@disabled
end
def self.enable
@disabled = false
end
def self.disable
@disabled = true
end
end
end
require "amqp/deprecated/mq"
class MQ
# @note This class will be removed before 1.0 release.
# @deprecated
class Logger < ::AMQP::Logger; end
end
|