https://docs.sentry.io/clients/java/modules/log4j/
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:
- raven dependencies
- log4j-1.2.17.jar
- slf4j-log4j12-1.7.7.jar is recommended as the implementation of slf4j (instead of slf4j-jdk14).
<dependency> <groupId>com.getsentry.raven</groupId> <artifactId>raven-log4j</artifactId> <version>7.8.1</version> </dependency>
logging.properties
og4j.rootLogger=WARN, SentryAppender log4j.appender.SentryAppender=com.getsentry.raven.log4j.SentryAppender log4j.appender.SentryAppender.dsn=https://<key>:<secret>@sentry.io/<project> log4j.appender.SentryAppender.tags=tag1:value1,tag2:value2 # Optional, allows to select the ravenFactory #log4j.appender.SentryAppender.ravenFactory=com.getsentry.raven.DefaultRavenFactory
log4j.xml
<appender name="sentry" class="com.getsentry.raven.log4j.SentryAppender"> <param name="dsn" value="https://<key>:<secret>@sentry.io/<project>"/> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="WARN"/> </filter> </appender>
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"); }