Conversation
Initialize the fatal logger before external configuration is merged and route legacy Logs and Metrics migration warnings through the always-visible startup logger across core, Android, and Spring Boot. Co-Authored-By: Claude <noreply@anthropic.com>
Use state-oriented names for the new Logback, Log4j2, JUL, Timber, Logcat, and Spring Boot Logs controls. Expose get...Enabled accessors so Java-defined options map to natural Kotlin properties before these APIs are released. Co-Authored-By: Claude <noreply@anthropic.com>
📲 Install BuildsAndroid
|
This was referenced Aug 14, 2026
runningcode
approved these changes
Aug 14, 2026
runningcode
left a comment
Contributor
There was a problem hiding this comment.
Yes! Much better API
Closed
8 tasks
# Conflicts: # sentry-android-core/api/sentry-android-core.api # sentry-logback/api/sentry-logback.api
# Conflicts: # sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java # sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt # sentry-spring-boot-4/src/main/java/io/sentry/spring/boot4/SentryAutoConfiguration.java # sentry-spring-boot-4/src/test/kotlin/io/sentry/spring/boot4/SentryAutoConfigurationTest.kt # sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryAutoConfiguration.java # sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryAutoConfigurationTest.kt # sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryAutoConfiguration.java # sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt # sentry/src/main/java/io/sentry/SentryOptions.java # sentry/src/test/java/io/sentry/SentryOptionsTest.kt
# Conflicts: # sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java # sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt # sentry-spring-boot-4/src/test/kotlin/io/sentry/spring/boot4/SentryAutoConfigurationTest.kt # sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryAutoConfigurationTest.kt # sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt
adinauer
changed the base branch from
fix/visible-enable-flag-warnings
to
fix/timber-lazy-logs-option
September 30, 2026 08:53
Update the remaining fixture call to use logsEnabled so the renamed API compiles. Co-Authored-By: Claude <noreply@anthropic.com>
Keep the newly added Log4j2 auto-configuration wiring aligned with the logsEnabled accessor and Spring property introduced by this branch. Co-Authored-By: Claude <noreply@anthropic.com>
Keep the null-message resource-bundle regression test aligned with the logsEnabled fixture option introduced by this branch. Co-Authored-By: Claude <noreply@anthropic.com>
Rename the Timber and Logcat options to make it explicit that they control capture into Sentry rather than output to those logging systems. Keep natural property syntax for Kotlin callers and align tests and guidance with the new names. Co-Authored-By: Claude <noreply@anthropic.com>
Add the Logs opt-in directly to the existing Log4j2 and Timber constructor signatures instead of retaining compatibility overloads. Document the intentional v9 API changes in the changelog. BREAKING CHANGE: Log4j2 and Timber callers using explicit constructor signatures must pass the new Logs opt-in argument. Co-Authored-By: Claude <noreply@anthropic.com>
Merge the latest Timber lazy-option fixes from PR #5964 into the stack tip. Preserve the renamed capture options and revised constructor API while retaining the internal lazy constructor and lambda wiring. Co-Authored-By: Claude <noreply@anthropic.com>
Keep structured Logs enabled in the Spring Boot Log4j2 samples after removing the aggregate Logs configuration. Co-Authored-By: Claude <noreply@anthropic.com>
Classify removal of the aggregate options as breaking changes and list the source-specific opt-ins for automatic Logs capture. Co-Authored-By: Claude <noreply@anthropic.com>
Replace the no-argument SentryTimberIntegration constructor with a boolean overload so manually installed integrations must choose whether to forward Sentry Logs. Keep the lazy evaluator path for auto-installed integrations and clarify the separate Android option and constructor configuration paths. BREAKING CHANGE: SentryTimberIntegration() now requires a logsEnabled argument. Co-Authored-By: Claude <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Stack (Logs and Metrics Enable Flags)
📜 Description
Renames the generic logging-integration opt-in from
enableLogstologsEnabledbefore the new API is released:<logsEnabled>true</logsEnabled>logsEnabled="true"LogManager:io.sentry.jul.SentryHandler.logsEnabled=truesentry.logging.logs-enabled=truelogsEnabledtimberLogCaptureEnabledlogcatLogCaptureEnabledJava integrations expose state-oriented
get...Enabled()andset...Enabled()accessors, which map to natural.logsEnabled,.timberLogCaptureEnabled, and.logcatLogCaptureEnabledproperty syntax in Kotlin. Samples, tests, API dumps, and option guidance use the renamed controls.The Android manifest keys remain
io.sentry.timber.logs.enabledandio.sentry.logcat.logs.enabled.The existing preferred Log4j2 constructor and factory, plus the Timber primary constructors, now accept the opt-in directly instead of publishing compatibility overloads. These intentional v9 JVM signature changes are documented under Breaking Changes in the changelog.
💡 Motivation and Context
logsEnableddescribes state rather than an action and provides a consistent.logsEnabledproperty across Kotlin-native and Java-defined integrations. The Android source-specific names uselogCaptureEnabledto make clear that the SDK captures from Timber and Logcat rather than outputting to them.💚 How did you test it?
./gradlew :sentry-logback:test :sentry-log4j2:test :sentry-jul:test :sentry-android-timber:testReleaseUnitTest :sentry-android-core:testReleaseUnitTest :sentry-spring-boot:test :sentry-spring-boot-jakarta:test :sentry-spring-boot-4:test./gradlew spotlessApply apiDump📝 Checklist
sendDefaultPIIis enabled.#skip-changelog