2014-09-18 27 views
7

Kullanıcı bağlamını, raven-java istemcisiyle nasıl kurabilirim?Sentry raven-java kullanıcı içeriği

user_email etiketi eklemeye ve MDC'ye user_email eklemeye çalıştım. Her ikisi de, etiketler etiketlemeye giderken ve MDC ek verilere giderken beklemede çalışırlar, ancak ne bağımlı kullanıcı bağlamını ayarlar.

Ben de javascript ile nöbet kullanabilir ve kuzgun js ile bu büyük çalışır:

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

bir java eşdeğer var mı? https://github.com/getsentry/raven-java/tree/master/raven-log4j#mapped-tags den

+0

https://github.com/getsentry/raven-java/issues gör/110 - 5.1.0 itibari ile 'new UserInterface (id, kullanıcı adı, ipAddress, e-posta) 'ekleyebilirsiniz – Alden

cevap

0

: appender içinde

seti haritası etiketler:

log4j.appender.SentryAppender.mappedTags=User,OS 

ve çalışma zamanı MDC ayarlayın:

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"); 
} 
+0

Kullanıcı kimliği, kullanıcı adı ve e-postayı nasıl geçiririz, böylece müşteri ile aynı şekilde çalışır? –

1

logback doğrudan kullanıcı bilgilerini gönderemezsiniz görünüyor. Sen kuzgun-java dan uygulanması bakabilirsiniz: Kullanıcı bilgisi ile göndermek edilir

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 (yeni userinterface (...)), bu uygulamaya bakın ancak ne yalnızca bir kod içerir: StackTraceInterface ve MessageInterface. Bence kendi kendine bir tane ekleyebilirsin.

0

ilgi hala varsa, ("ip" MDC ayarlanır "kullanıcı adını" varsayarak ve) başlangıçta bu çalıştırın:

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