Отправить дополнительную информацию с Raven.send_event - PullRequest
0 голосов
/ 09 июля 2019

Я включил Sentry в свое приложение Ruby On Rails и хочу отправить пользовательское событие, когда происходит конкретный случай, я могу отправить события с

Raven.send_event({:message => 'Custom event'})

Как отправить дополнительную информацию, связанную с тем же. Мне нужно отправить, например, user_id, email_id, login_name и другие пользовательские параметры.

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Вы можете установить user_context равным raven, используя Raven.user_context метод

Вы можете написать метод для установки контекста в Application Controller и вызвать его перед действием

Например

Raven.user_context(
# a unique ID which represents this user
id: current_user.id, # 1

# the actor's email address, if available
 email: current_user.email, # "example@example.org"

 # the actor's username, if available
  username: current_user.username, # "foo"

  # the actor's IP address, if available
  ip_address: request.ip # '127.0.0.1'
)

Вы можете написать в контроллере приложения как

class ApplicationController < ActionController::Base
before_action :set_raven_context, if: proc { Rails.env.production? } //If you want to set only in prod

def set_raven_context


Raven.user_context(
# a unique ID which represents this user
id: current_user.id, # 1

# the actor's email address, if available
 email: current_user.email, # "example@example.org"

 # the actor's username, if available
  username: current_user.username, # "foo"

  # the actor's IP address, if available
  ip_address: request.ip # '127.0.0.1'
)

#You can also set extra context using `Raven.extra_context`
Raven.extra_context app: url, environment: Rails.env, time: Time.now
end

end
0 голосов
/ 11 июля 2019

Для тех, кто сталкивался с подобной проблемой, мне удалось это сделать, под ключом extra вы можете указать любые дополнительные ключи, которые вы хотите отправить на часовой для дальнейшей отладки

    Raven.capture_message "custom message",
      logger: 'logger',
      extra: {
        time_at: Time.now
      },
      tags: {
        env: Rails.env
      }

...