fix: options.DisableLoggingIntegration() is no longer no-op
#2413
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.
Fixes #2411
Problem
The
DisableUnityApplicationLoggingIntegrationextension method was effectively a no-op - it removed the wrong integration in the best of cases, and did nothing in the worst.Root Cause
Unity log/exception handling is split across two integrations:
UnityLogHandlerIntegration- captures actual exception objects fromDebug.LogException(non-WebGL only)UnityApplicationLoggingIntegration- captures logs, warnings, errors, breadcrumbs, and structured logsWebGL requires special handling because
UnityLogHandlerIntegrationdoesn't work on that platform. Previously in #2322, I added exception capture directly intoUnityApplicationLoggingIntegrationvia acaptureExceptionsflag, configured in theSentryWebGL.Configure()callback.This created two issues:
UnityApplicationLoggingIntegrationhandled both logs AND exceptions (but only on WebGL)DisableUnityApplicationLoggingIntegrationwas incorrectly removingUnityLogHandlerIntegrationinstead ofUnityApplicationLoggingIntegrationSolution
This PR cleanly separates concerns and fixes the extension methods:
UnityWebGLExceptionHandler- dedicated integration for WebGL exception handling viaApplication.LogMessageReceivedUnityApplicationLoggingIntegration- removed exception handling, now only handles logs/warnings/errors/breadcrumbsSentryUnityOptionsconstructor, removed fromSentryWebGL.Configure()- This also restores the extension method functionalityDisableUnityLoggingIntegration()- disables log/warning/error captureDisableUnhandledExceptionCapture()- disables exception capture (both WebGL and non-WebGL handlers)Added tests for both extension methods to prevent future regressions.