# SDK Debugging

### Debug Mode

In case you would like to view your data on the dashboard without having to wait for the SDK's default 6-hour batching period, you can do so by enabling Debug Mode. Once enabled, data captured by our SDK will be synced upon **closing a session and starting a new one**. This can be especially helpful if you are debugging an integration issue or simply trying out APM for the first time.

#### iOS

Debug Mode is enabled by default for iOS if you’re running the app via Xcode (i.e. the debugger is attached).

#### Android

Enable Debug Mode on Android by running the following command in a terminal:

{% code title="Enable Debug Mode on Android" %}

```bash
adb shell setprop debug.luciq.apm.app YOUR_APP_PACKAGE_NAME
```

{% endcode %}

Disable Debug Mode on Android with:

{% code title="Disable Debug Mode on Android" %}

```bash
adb shell setprop debug.luciq.apm.app none
```

{% endcode %}

{% hint style="warning" %}
Please note that rate limiting will apply if the number of sessions exceeds 50 per hour. Once this limit is reached, you will have to wait until a full hour has elapsed in order to be able to keep using Debug Mode. Data collected during this period will not show up on your Dashboard.
{% endhint %}

### Logging

APM SDK provides useful console logs in Xcode for visibility on significant events. You can control the level of verbosity via the following API.

{% code title="JavaScript" %}

```javascript
import Luciq, { LogLevel } from "@luciq/react-native";

Luciq.init({
  // ...
  debugLogsLevel: LogLevel.debug,
})
```

{% endcode %}

The available levels are:

* **none:** disables all APM SDK console logs.
* **error:** prints errors only, used to indicate something went wrong.
* **warning:** displays warnings that may not cause errors but should be addressed.
* **info:** default level; logs useful information without being too verbose.
* **debug:** use when debugging an issue. Not recommended for production.
* **verbose:** more detailed than debug; not meant for production environments.

{% hint style="info" %}
Each level displays the logs corresponding to its own level as well as all the levels above it. For example, Info includes Warning and Error logs, etc.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.luciq.ai/react-native/setup-luciq-for-react-native/setup-application-performance-monitoring/sdk-debugging.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
