---
title: Logging and Crash Reporting
slug: web-view-sdk-logging
createdAt: 2026-11-03T10:14:19.120Z
---

The SDK writes its own logs and reports errors in its own code to Kindly. Debug logs are off by default and crash reporting is on

## Settings

::::Tabs
:::Tab{title="iOS"}
```swift
KindlyWebViewSDK.verboseLogging = true        // debug logs, off by default
KindlyWebViewSDK.enableCrashReporting = false  // on by default
```
:::

:::Tab{title="Android"}
```kotlin
KindlyWebViewSDK.verboseLogging = true        // debug logs, off by default
KindlyWebViewSDK.enableCrashReporting = false  // on by default
```
:::

:::Tab{title="Flutter"}
```dart
await KindlyWebViewSDK.setVerboseLogging(true);   // debug logs, off by default
await KindlyWebViewSDK.setCrashReporting(false);  // on by default
```
:::

:::Tab{title="React Native"}
```typescript
KindlyWebViewSDK.setVerboseLogging(true);   // debug logs, off by default
KindlyWebViewSDK.setCrashReporting(false);  // on by default
```
:::
::::

Set both before `start` so they cover the whole session

## Reading the logs

::::Tabs
:::Tab{title="iOS"}
Logs go to the unified log under the subsystem `ai.kindly.webview`. On a device, watch them in the Console app. For the booted simulator, in a terminal:

```shell
xcrun simctl spawn booted log stream --predicate 'subsystem == "ai.kindly.webview"' --level debug
```
:::

:::Tab{title="Android"}
Logs go to Logcat under the tag `KindlyWebView`:

```shell
adb logcat -s KindlyWebView
```
:::

:::Tab{title="Flutter"}
The logs are the native SDK's: the unified log under the subsystem `ai.kindly.webview` on iOS, and Logcat under the tag `KindlyWebView` on Android, see the iOS and Android tabs. The package's own warnings go to the Dart console
:::

:::Tab{title="React Native"}
The logs are the native SDK's: the unified log under the subsystem `ai.kindly.webview` on iOS, and Logcat under the tag `KindlyWebView` on Android, see the iOS and Android tabs. The package's own warnings go to the JavaScript console
:::
::::

The logs never contain chat content, chat ids, context values, tokens, or more of a URL than its scheme and host. A call the SDK refuses, such as `displayChat` before `start` or a context map that breaks the rules, is logged as an error with or without the debug logs. The debug logs add how the chat page loads, each token request's outcome and each link's, so turn them on while you integrate

## Crash reporting

Crash reporting sends errors in the SDK's own code to Kindly, without chat content, see [Privacy and Data](docId\:gyIQwGQKBb66C-HH3gIpp) for what a report carries. It is separate from your app's crash reporting:

::::Tabs
:::Tab{title="iOS"}
The SDK does not use the Sentry SDK, so it never touches a Sentry setup of your app
:::

:::Tab{title="Android"}
The SDK reports only crashes whose stack holds SDK code, and every crash still reaches your app's own crash reporter. It uses Sentry's JVM core, `io.sentry:sentry`, see [Installation](docId\:sonmjcrRZMUEA1QI1eg5q)
:::

:::Tab{title="Flutter"}
The native SDK reports, as on iOS and Android, see those tabs
:::

:::Tab{title="React Native"}
The native SDK reports, as on iOS and Android, see those tabs
:::
::::
