【问题标题】:Sentry raven-java user contextSentry raven-java 用户上下文
【发布时间】:2014-11-13 03:11:24
【问题描述】:

如何使用 sentry raven-java 客户端设置用户上下文?

我尝试添加user_email 标记,并将user_email 添加到MDC。它们都按预期工作,标签转到标签,MDC 转到附加数据,但都没有设置哨兵用户上下文。

我也将 sentry 与 javascript 和 raven-js 一起使用,效果很好:

Raven.setUserContext({
    email: '',
    id: ''
});

有 java 等价物吗?

【问题讨论】:

标签: java sentry raven


【解决方案1】:

如果仍然感兴趣,请在启动时运行它(假设在 MDC 上设置了“userid”和“ip”):

Raven.getStoredInstance().addBuilderHelper(eventBuilder -> {
  UserInterface userInterface = new UserInterface(MDC.get("userid"), null, MDC.get("ip"), null);
  eventBuilder.withSentryInterface(userInterface);
});

【讨论】:

    【解决方案2】:

    似乎无法通过 logback 直接发送用户信息。 您可以查看 raven-java 的实现:

    protected Event buildEvent(ILoggingEvent iLoggingEvent) {
        EventBuilder eventBuilder = new EventBuilder()
                .withTimestamp(new Date(iLoggingEvent.getTimeStamp()))
                .withMessage(iLoggingEvent.getFormattedMessage())
                .withLogger(iLoggingEvent.getLoggerName())
                .withLevel(formatLevel(iLoggingEvent.getLevel()))
                .withExtra(THREAD_NAME, iLoggingEvent.getThreadName());
        ......
    }
    

    用户信息由:withSentryInterface(new UserInterface(...)) 发送,但是我看到这个工具只包含以下代码:StackTraceInterface 和 MessageInterface。我想你可以自己添加一个。

    【讨论】:

      【解决方案3】:

      来自https://github.com/getsentry/raven-java/tree/master/raven-log4j#mapped-tags

      在appender中设置地图标签:

      log4j.appender.SentryAppender.mappedTags=User,OS
      

      并在运行时设置 MDC:

      void logWithExtras() {
          // MDC extras
          MDC.put("User", "test user");
          MDC.put("OS", "Linux");
      
          // This adds a message with extras and MDC keys declared in mappedTags as tags to Sentry
          logger.info("This is a test");
      }
      

      【讨论】:

      • 我们如何传递用户 ID、用户名、电子邮件,使其工作方式与客户端相同?
      猜你喜欢
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 2021-10-22
      • 2018-03-18
      • 2017-12-31
      相关资源
      最近更新 更多