Raven-Java provides log4j support for Raven. It provides an Appender for log4j to send the logged events to Sentry.
The project can be found on github: raven-java/raven-log4j
If you manually want to manage your dependencies:
slf4j-log4j12-1.7.7.jar is recommended as the implementation of slf4j (instead of slf4j-jdk14).
com.getsentry.raven
raven-log4j
7.8.1
logging.properties
og4j.rootLogger=WARN, SentryAppender
log4j.appender.SentryAppender=com.getsentry.raven.log4j.SentryAppender
log4j.appender.SentryAppender.dsn=https://:@sentry.io/
log4j.appender.SentryAppender.tags=tag1:value1,tag2:value2
# Optional, allows to select the ravenFactory
#log4j.appender.SentryAppender.ravenFactory=com.getsentry.raven.DefaultRavenFactory
log4j.xml
Practical Example
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
import org.apache.log4j.NDC;
public class MyClass {
private static final Logger logger = Logger.getLogger(MyClass.class);
void logSimpleMessage() {
// This adds a simple message to the logs
logger.info("This is a test");
}
void logWithExtras() {
// MDC extras
MDC.put("extra_key", "extra_value");
// NDC extras are sent under 'log4J-NDC'
NDC.push("Extra_details");
// This adds a message with extras to the logs
logger.info("This is a test");
}
void logException() {
try {
unsafeMethod();
} catch (Exception e) {
// This adds an exception to the logs
logger.error("Exception caught", e);
}
}
void unsafeMethod() {
throw new UnsupportedOperationException("You shouldn't call that");
}
}
Mapped Tags
log4j.appender.SentryAppender.extraTags=Environment,OS
void logWithExtras() {
// MDC extras
MDC.put("Environment", "Development");
MDC.put("OS", "Linux");
// This adds a message with extras and MDC keys declared in extraTags as tags to Sentry
logger.info("This is a test");
}