class Sentry::Breadcrumb

def initialize(category: nil, data: nil, message: nil, timestamp: nil, level: nil, type: nil)

Parameters:
  • type (String, nil) --
  • level (String, nil) --
  • timestamp (Time, Integer, nil) --
  • message (String, nil) --
  • data (Hash, nil) --
  • category (String, nil) --
def initialize(category: nil, data: nil, message: nil, timestamp: nil, level: nil, type: nil)
  @category = category
  @data = data || {}
  @timestamp = timestamp || Sentry.utc_now.to_i
  @type = type
  self.message = message
  self.level = level
end

def level=(level) # needed to meet the Sentry spec

Returns:
  • (void) -

Parameters:
  • level (String) --
def level=(level) # needed to meet the Sentry spec
  @level = level == "warn" ? "warning" : level
end

def message=(message)

Returns:
  • (void) -

Parameters:
  • message (String) --
def message=(message)
  @message = message && Utils::EncodingHelper.valid_utf_8?(message) ? message.byteslice(0..Event::MAX_MESSAGE_SIZE_IN_BYTES) : ""
end

def serialized_data

def serialized_data
  begin
    ::JSON.parse(::JSON.generate(@data, max_nesting: MAX_NESTING))
  rescue Exception => e
    Sentry.sdk_logger.debug(LOGGER_PROGNAME) do
      <<~MSG
t serialize breadcrumb data because of error: #{e}
: #{@data}
      MSG
    end
    { error: DATA_SERIALIZATION_ERROR_MESSAGE }
  end
end

def to_h

Returns:
  • (Hash) -
def to_h
  {
    category: @category,
    data: serialized_data,
    level: @level,
    message: @message,
    timestamp: @timestamp,
    type: @type
  }
end