Error Capture
Learn more about how to configure your SDK to automatically send events to Sentry.
The SDK relies on two integrations to capture errors: UnityLogHandlerIntegration
and the UnityApplicationLoggingIntegration
. While they sound similar, they serve different purposes.
The SDK uses the UnityLogHandlerIntegration
to hook into Unity's logging system. From there it receives all log messages that are logged via the Debug.Log
, Debug.LogWarning
, and Debug.LogError
methods. These log messages are also added as breadcrumbs to future events. By default, the SDK will automatically capture messages logged via Debug.LogError
as error events. This can be disabled by unchecking the automatic capture of Debug.LogError
on the Enrichment
tab, or by setting the CaptureLogErrorEvents
option to false
.
https://docs.unity3d.com/6000.0/Documentation/Manual/stack-trace.html
If configured, the SDK receives the stacktrace as part of the logging messages in a raw string format. The SDK is able to parse this format and display it in the Sentry UI. Unfortunately, to provide line numbers, the SDK needs to have an actual thrown exception object to fetch the required information for symbolication. Read more about the IL2CPP error symbolication works here. If you're using Unity 6 or newer, you can enable the source code line numbers in the player settings. These line numbers are then part of the stringified stacktrace and will be parsed by the SDK.
The SDK uses the UnityApplicationLoggingIntegration
to add its own log handler right before Unity's logging system and passes the logs back to Unity. This allows the SDK to capture errors from the Application.logMessageReceived
method. All handled exceptions (i.e., those captured via Log.LogException
calls) and unhandled exceptions are captured by the SDK. These messages contain the actual exception object, which allows the SDK to fetch the required information for symbolication.
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").