diff --git a/CHANGELOG.md b/CHANGELOG.md index 11726ae91d..9169d6117f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ > make sure you follow our [migration guide](https://docs.sentry.io/platforms/react-native/migration/) first. +## Unreleased + +### Fixes + +- Enable native logs on Android when `enableLogs` is set ([#6967](https://github.com/getsentry/sentry-react-native/pull/6967)) + ## 8.33.0 ### Changes diff --git a/packages/core/RNSentryAndroidTester/app/src/test/java/io/sentry/react/RNSentryStartTest.kt b/packages/core/RNSentryAndroidTester/app/src/test/java/io/sentry/react/RNSentryStartTest.kt index 0c64b573ab..b20475cc05 100644 --- a/packages/core/RNSentryAndroidTester/app/src/test/java/io/sentry/react/RNSentryStartTest.kt +++ b/packages/core/RNSentryAndroidTester/app/src/test/java/io/sentry/react/RNSentryStartTest.kt @@ -314,6 +314,38 @@ class RNSentryStartTest { assertFalse("Tombstone should be disabled by default", options.isTombstoneEnabled) } + @Test + fun `when enableLogs is true, logs are enabled`() { + val rnOptions = JavaOnlyMap.of("enableLogs", true) + val options = SentryAndroidOptions() + + RNSentryStart.getSentryAndroidOptions(options, rnOptions, logger) + + assertTrue("Logs should be enabled", options.logs.isEnabled) + } + + @Test + fun `when enableLogs is false, logs are disabled`() { + val rnOptions = JavaOnlyMap.of("enableLogs", false) + val options = SentryAndroidOptions() + options.logs.isEnabled = true + + RNSentryStart.getSentryAndroidOptions(options, rnOptions, logger) + + assertFalse("Logs should be disabled", options.logs.isEnabled) + } + + @Test + fun `when enableLogs is not set, logs remain at the native default`() { + val rnOptions = JavaOnlyMap() + val options = SentryAndroidOptions() + val defaultValue = options.logs.isEnabled + + RNSentryStart.getSentryAndroidOptions(options, rnOptions, logger) + + assertEquals("Logs should remain at the native default", defaultValue, options.logs.isEnabled) + } + @Test fun `when enableHistoricalTombstoneReporting is true, historical tombstone reporting is enabled`() { val rnOptions = JavaOnlyMap.of("enableHistoricalTombstoneReporting", true) diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java index d64f5b175e..2025268110 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java @@ -169,6 +169,9 @@ static void getSentryAndroidOptions( if (rnOptions.hasKey("enableNdk")) { options.setEnableNdk(rnOptions.getBoolean("enableNdk")); } + if (rnOptions.hasKey("enableLogs")) { + options.getLogs().setEnabled(rnOptions.getBoolean("enableLogs")); + } if (rnOptions.hasKey("enableTombstone")) { options.setTombstoneEnabled(rnOptions.getBoolean("enableTombstone")); }