Sentry raven java用户上下文
如何使用sentry raven java客户端设置用户上下文 我尝试添加一个Sentry raven java用户上下文,java,sentry,raven,Java,Sentry,Raven,如何使用sentry raven java客户端设置用户上下文 我尝试添加一个user\u email标记,并将user\u email添加到MDC。它们都按预期工作,标记转到标记,MDC转到附加数据,但都没有设置sentry用户上下文 我还将sentry与javascript和raven js结合使用,效果非常好: Raven.setUserContext({ email: '', id: '' }); 是否有java等价物?来自: 在appender中设置地图标记: log
user\u email
标记,并将user\u email
添加到MDC。它们都按预期工作,标记转到标记,MDC转到附加数据,但都没有设置sentry用户上下文
我还将sentry与javascript和raven js结合使用,效果非常好:
Raven.setUserContext({
email: '',
id: ''
});
是否有java等价物?来自:
在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");
}
似乎无法通过logback直接发送用户信息。 您可以查看raven java的实现:
用户信息是通过:WithEntryInterface(新用户界面(…)发送的,但是我看到的这个实现只包含:StackTraceInterface和MessageInterface的代码。我想您可以自己添加一个。如果仍然感兴趣,请在启动时运行此操作(假设MDC上设置了“userid”和“ip”):
请参阅-从5.1.0开始,您可以添加
新用户界面(id、用户名、IP地址、电子邮件)
我们如何传递用户id、用户名、电子邮件,使其与客户端的工作方式相同?
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());
......
}
Raven.getStoredInstance().addBuilderHelper(eventBuilder -> {
UserInterface userInterface = new UserInterface(MDC.get("userid"), null, MDC.get("ip"), null);
eventBuilder.withSentryInterface(userInterface);
});