Method: SemanticLogger::Appender::Sentry#log

Defined in:
lib/semantic_logger/appender/sentry.rb

#log(log) ⇒ Object

Send an error notification to sentry



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/semantic_logger/appender/sentry.rb', line 48

def log(log)
  # Ignore logs coming from Raven itself
  return false if log.name == "Raven"

  context      = formatter.call(log, self)
  user         = context.delete(:user)
  tags         = context.delete(:tags)
  attrs        = {
    level: context.delete(:level),
    extra: context
  }
  attrs[:user] = user if user
  attrs[:tags] = tags if tags
  if log.exception
    context.delete(:exception)
    Raven.capture_exception(log.exception, attrs)
  else
    attrs[:extra][:backtrace] = log.backtrace if log.backtrace
    Raven.capture_message(context[:message], attrs)
  end
  true
end