Releases: getsentry/sentry-java
Releases · getsentry/sentry-java
8.15.0
Fixes
- No longer send out empty log envelopes (#4497)
- Session Replay: Expand fix for crash on devices to all Unisoc/Spreadtrum chipsets (#4510)
- Log parameter objects are now turned into
StringviatoString(#4515)- One of the two
SentryLogEventAttributeValueconstructors did not convert the value previously.
- One of the two
- Logs are now flushed on shutdown (#4503)
- User Feedback: Do not redefine system attributes for
SentryUserFeedbackButton, but reference them instead (#4519)
Features
- Add chipset to device context (#4512)
- Send Logback logs to Sentry as logs (#4502)
- You need to enable the logs feature and can also set the
minimumLevelfor log events:<appender name="sentry" class="io.sentry.logback.SentryAppender"> <options> <!-- NOTE: Replace the test DSN below with YOUR OWN DSN to see the events from this app in your Sentry project/dashboard --> <dsn>https://[email protected]/5428563</dsn> <logs> <enabled>true</enabled> </logs> </options> <!-- Demonstrates how to modify the minimum values --> <!-- Default for Events is ERROR --> <minimumEventLevel>WARN</minimumEventLevel> <!-- Default for Breadcrumbs is INFO --> <minimumBreadcrumbLevel>DEBUG</minimumBreadcrumbLevel> <!-- Default for Log Events is INFO --> <minimumLevel>INFO</minimumLevel> </appender>
- For Spring Boot you may also enable it in
application.properties/application.yml:sentry.logs.enabled=true sentry.logging.minimum-level=error
- If you manually initialize Sentry, you may also enable logs on
Sentry.init:Sentry.init(options -> { ... options.getLogs().setEnabled(true); });
- Enabling via
sentry.propertiesis also possible:logs.enabled=true
- You need to enable the logs feature and can also set the
- Automatically use
SentryOptions.Logs.BeforeSendLogCallbackSpring beans (#4509)
Dependencies
8.14.0 (Stable)
Fixes
- Fix Session Replay masking for newer versions of Jetpack Compose (1.8+) (#4485)
Features
- Add New User Feedback Widget (#4450)
- This widget is a custom button that can be used to show the user feedback form
- Add New User Feedback form (#4384)
- We now introduce SentryUserFeedbackDialog, which extends AlertDialog, inheriting the show() and cancel() methods, among others.
To use it, just instantiate it and call show() on the instance (Sentry must be previously initialized).
For customization options, please check the User Feedback documentation.import io.sentry.android.core.SentryUserFeedbackDialog; new SentryUserFeedbackDialog.Builder(context).create().show();
import io.sentry.android.core.SentryUserFeedbackDialog SentryUserFeedbackDialog.Builder(context).create().show()
- We now introduce SentryUserFeedbackDialog, which extends AlertDialog, inheriting the show() and cancel() methods, among others.
- Add
user.id,user.nameanduser.emailto log attributes (#4486) - User
nameattribute has been deprecated, please useusernameinstead (#4486) - Add device (
device.brand,device.modelanddevice.family) and OS (os.nameandos.version) attributes to logs (#4493) - Serialize
preContextandpostContextinSentryStackFrame(#4482)
Internal
- User Feedback now uses SentryUser.username instead of SentryUser.name (#4494)
8.13.3
Fixes
- Send UI Profiling app start chunk when it finishes (#4423)
- Republish Javadoc #4457
- Finalize
OkHttpEventeven if no active span inSentryOkHttpInterceptor#4469 - Session Replay: Do not capture current replay for cached events from the past (#4474)
- Session Replay: Correctly capture Dialogs and non full-sized windows (#4354)
- Session Replay: Fix inconsistent
segment_id(#4471) - Session Replay: Fix crash on devices with the Unisoc/Spreadtrum T606 chipset (#4477)
8.13.2 (Stable)
Fixes
- Don't apply Spring Boot plugin in
sentry-spring-boot-jakarta(#4456)- The jar for
io.sentry:sentry-spring-boot-jakartais now correctly being built and published to Maven Central.
- The jar for
8.13.1
8.13.0
Warning
Android: Please do not use this version if you're initializing the SDK manually on a background thread, as this could lead to a crash during SDK init (issue details here). We recommend using SDK version 8.13.1 or higher instead.
Features
- Add debug mode for Session Replay masking (#4357)
- Use
Sentry.replay().enableDebugMaskingOverlay()to overlay the screen with the Session Replay masks. - The masks will be invalidated at most once per
frameRate(default 1 fps).
- Use
- Extend Logs API to allow passing in
attributes(#4402)Sentry.logger.lognow takes aSentryLogParameters- Use
SentryLogParameters.create(SentryAttributes.of(...))to pass attributes- Attribute values may be of type
string,boolean,integerordouble. - Other types will be converted to
string. Currently we simply calltoString()but we might offer more in the future. - You may manually flatten complex types into multiple separate attributes of simple types.
- e.g. intead of
SentryAttribute.named("point", Point(10, 20))you may store it asSentryAttribute.integerAttribute("point.x", point.x)andSentryAttribute.integerAttribute("point.y", point.y)
- e.g. intead of
SentryAttribute.named()will automatically infer the type or fall back tostring.SentryAttribute.booleanAttribute()takes aBooleanvalueSentryAttribute.integerAttribute()takes aIntegervalueSentryAttribute.doubleAttribute()takes aDoublevalueSentryAttribute.stringAttribute()takes aStringvalue
- Attribute values may be of type
- We opted for handling parameters via
SentryLogParametersto avoid creating tons of overloads that are ambiguous.
Fixes
- Isolation scope is now forked in
OtelSentrySpanProcessorinstead ofOtelSentryPropagator(#4434)- Since propagator may never be invoked we moved the location where isolation scope is forked.
- Not invoking
OtelSentryPropagator.extractor having asentry-traceheader that failed to parse would cause isolation scope not to be forked. - This in turn caused data to bleed between scopes, e.g. from one request into another
Dependencies
- Bump Spring Boot to
3.5.0(#4111)
8.12.0
Warning
Android: Please do not use this version if you're initializing the SDK manually on a background thread, as this could lead to a crash during SDK init (issue details here). We recommend using SDK version 8.13.1 or higher instead.
Features
- Add new User Feedback API (#4286)
- We now introduced Sentry.captureFeedback, which supersedes Sentry.captureUserFeedback
- Add Sentry Log Feature (#4372)
- The feature is disabled by default and needs to be enabled by:
options.getLogs().setEnabled(true)inSentry.init/SentryAndroid.init<meta-data android:name="io.sentry.logs.enabled" android:value="true" />inAndroidManifest.xmllogs.enabled=trueinsentry.propertiessentry.logs.enabled=trueinapplication.propertiessentry.logs.enabled: trueinapplication.yml
- Logs can be captured using
Sentry.logger().info()and similar methods. - Logs also take a format string and arguments which we then send through
String.format. - Please use
options.getLogs().setBeforeSend()to filter outgoing logs
- The feature is disabled by default and needs to be enabled by:
Fixes
- Hook User Interaction integration into running Activity in case of deferred SDK init (#4337)
Dependencies
8.11.1 (Stable)
Fixes
- Fix Android profile chunk envelope type for UI Profiling (#4366)
8.11.0
Features
- Make
RequestDetailsResolverpublic (#4326)RequestDetailsResolveris now public and has an additional constructor, making it easier to use a customTransportFactory
Fixes
8.11.0-alpha.1
Features
- Support
globalHubModefor OpenTelemetry (#4349)- Sentry now adds OpenTelemetry spans without a parent to the last known unfinished root span (transaction)
- Previously those spans would end up in Sentry as separate transactions
- Spans created via Sentry API are preferred over those created through OpenTelemetry API or auto instrumentation
- New option
ignoreStandaloneClientSpansthat prevents Sentry from creating transactions for OpenTelemetry spans with kindCLIENT(#4349)- Defaults to
falsemeaning standalone OpenTelemetry spans with kindCLIENTwill be turned into Sentry transactions
- Defaults to
- Make
RequestDetailsResolverpublic (#4326)RequestDetailsResolveris now public and has an additional constructor, making it easier to use a customTransportFactory