diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index daedf7629f4..b73be801772 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ kotlin-compatible-version = "1.9" ksp = "2.3.9" ktorClient = "3.0.0" logback = "1.2.9" -log4j2 = "2.20.0" +log4j2 = "2.26.1" nopen = "1.0.1" # see https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-compatibility-and-versioning.html#kotlin-compatibility # see https://developer.android.com/jetpack/androidx/releases/compose-kotlin diff --git a/sentry-log4j2/build.gradle.kts b/sentry-log4j2/build.gradle.kts index 2d2444a2395..37bf333e4f5 100644 --- a/sentry-log4j2/build.gradle.kts +++ b/sentry-log4j2/build.gradle.kts @@ -55,6 +55,16 @@ tasks.withType().configureEach { } } +// log4j's GraalVmProcessor warns (and fails the build under -Werror) without these options +tasks.named("compileJava") { + options.compilerArgs.addAll( + listOf( + "-Alog4j.graalvm.groupId=${project.group}", + "-Alog4j.graalvm.artifactId=${project.name}", + ) + ) +} + tasks.jar { manifest { attributes( diff --git a/sentry-log4j2/src/main/java/io/sentry/log4j2/SentryAppender.java b/sentry-log4j2/src/main/java/io/sentry/log4j2/SentryAppender.java index c965784f00f..ce8d15e033b 100644 --- a/sentry-log4j2/src/main/java/io/sentry/log4j2/SentryAppender.java +++ b/sentry-log4j2/src/main/java/io/sentry/log4j2/SentryAppender.java @@ -242,7 +242,9 @@ public void append(final @NotNull LogEvent eventObject) { * @param loggingEvent the log4j2 event */ // for the Android compatibility we must use old Java Date class - @SuppressWarnings("JdkObsolete") + // Message.getFormat() is deprecated since log4j 2.24.0 without a replacement for reading the + // message template + @SuppressWarnings({"JdkObsolete", "deprecation"}) protected void captureLog(@NotNull LogEvent loggingEvent) { final @NotNull SentryLogLevel sentryLevel = toSentryLogLevel(loggingEvent.getLevel()); @@ -274,7 +276,9 @@ protected void captureLog(@NotNull LogEvent loggingEvent) { * @return the sentry event */ // for the Android compatibility we must use old Java Date class - @SuppressWarnings("JdkObsolete") + // Message.getFormat() is deprecated since log4j 2.24.0 without a replacement for reading the + // message template + @SuppressWarnings({"JdkObsolete", "deprecation"}) protected @NotNull SentryEvent createEvent(final @NotNull LogEvent loggingEvent) { final SentryEvent event = new SentryEvent(DateUtils.getDateTime(loggingEvent.getTimeMillis())); final Message message = new Message();