class StackifyRubyAPM::Spies::YellSpy
@api private
Constants
- EXCEPTION
- SEVERITIES
Public Instance Methods
add(options, *messages, &block)
click to toggle source
Log
messages
# File lib/stackify_apm/spies/yell.rb, line 17 def add(options, *messages, &block) return add_without_apm(options, *messages, &block) unless StackifyRubyAPM.current_transaction begin name = 'yell;' type = 'ext.yell' log_message = [] exception = [] messages.each { |msg| case msg when ::String log_message.push(msg) when ::Exception log_message.push(msg.message) exception.push("(#{ msg.class })\n#{ msg.backtrace.join("\n") if msg.backtrace }") else log_message.push(msg.inspect) end } ctx = Span::Context.new( CATEGORY: 'Log', SUBCATEGORY: 'Yell', LEVEL: SEVERITIES[options.severity], MESSAGE: log_message.to_s, PREFIX: 'TRUE' ) if exception.length > 0 ctx.EXCEPTION = exception.to_s end rescue Exception => e StackifyRubyAPM.agent.error "[YellSpy] Error: creating span context." StackifyRubyAPM.agent.error "[YellSpy] #{e.inspect}" return add_without_apm(options, *messages, &block) end StackifyRubyAPM.span name, type, context: ctx do add_without_apm(options, *messages, &block) end end
install()
click to toggle source
# File lib/stackify_apm/spies/yell.rb, line 12 def install Yell::Logger.module_eval do alias_method 'add_without_apm', 'add' # Log messages def add(options, *messages, &block) return add_without_apm(options, *messages, &block) unless StackifyRubyAPM.current_transaction begin name = 'yell;' type = 'ext.yell' log_message = [] exception = [] messages.each { |msg| case msg when ::String log_message.push(msg) when ::Exception log_message.push(msg.message) exception.push("(#{ msg.class })\n#{ msg.backtrace.join("\n") if msg.backtrace }") else log_message.push(msg.inspect) end } ctx = Span::Context.new( CATEGORY: 'Log', SUBCATEGORY: 'Yell', LEVEL: SEVERITIES[options.severity], MESSAGE: log_message.to_s, PREFIX: 'TRUE' ) if exception.length > 0 ctx.EXCEPTION = exception.to_s end rescue Exception => e StackifyRubyAPM.agent.error "[YellSpy] Error: creating span context." StackifyRubyAPM.agent.error "[YellSpy] #{e.inspect}" return add_without_apm(options, *messages, &block) end StackifyRubyAPM.span name, type, context: ctx do add_without_apm(options, *messages, &block) end end end end