Gleap logs your app's network requests and attaches the most recent ones to every ticket, so you can see what went wrong.
Network logs for React Native work out of the box: enable Network logs in the Developer options of your project in the Gleap dashboard. You can also switch them on and off from code:
Gleap.startNetworkLogging();
Gleap.stopNetworkLogging(); // also wins over the dashboard settingiOS: the native SDK logs every request of the app,
fetchandXMLHttpRequest(and libraries built on them, such as axios) as well as requests made by native modules.Android:
fetchandXMLHttpRequestrequests are logged in JavaScript and handed to the native SDK.
For each request Gleap logs the method, URL, request headers and body, response status, headers and body, the duration and, for failed, aborted or timed-out requests, the error. The last 30 requests are attached to a ticket. Text bodies are kept up to 150 KB; binary and streaming bodies (images, server-sent events) are left out.
fetch request twice, did not log failed requests with their error, and on Android frequently sent no network logs at all.Filtering network logs
Gleap allows you to strip off specific key/value pairs from network logs. This empowers you to easily remove sensitive data like tokens, passwords or usernames.
How does it work?
Open Settings → Developer → Developer options → Network logs and add keys under Ignored keys. Use Excluded domains for hosts whose requests should not be recorded. These settings load with the widget configuration and are applied on the device before a report is sent.
Headers: request and response headers with a matching name are removed (the name is matched case-insensitively).
JSON bodies: matching keys are removed from request and response bodies at any depth, including objects inside arrays. A key with dots, like
user.password, also removes exactly that path.Form bodies and URL parameters: matching
application/x-www-form-urlencodedfields and query parameters are removed.
Independent of this list, the values of the Authorization, Proxy-Authorization, Cookie and Set-Cookie headers are always replaced by [REDACTED].
Example
To remove an API key header and every password field, add x-api-key and password to the list.
Set filter with code
It's also possible to set the network log filters by code. Each call replaces the previous list. The keys set in the dashboard apply in addition.
Gleap.setNetworkLogPropsToIgnore(["x-api-key", "password", "user.email"]);Blacklisting URLs
It is possible to blacklist URLs or parts of URLs. If a network request matches one of the entries in the blacklist, the network request won't be included in the network logs.
gleap.io and gleap.ai, the domain of the US data region) are always excluded from the network logs, so you don't need to blacklist them yourself. The JavaScript SDK does this since v18.0.0, the iOS, Android, React Native, Flutter and Ionic Capacitor SDKs since v19.0.0.To add a new entry to the blacklist, open your project in the Gleap dashboard, go to Developer options and add the URLs under Network logs → Excluded domains.
Set blacklist with code
It's also possible to set the network log blacklist by code. Each call replaces the previous list. The domains set in the dashboard apply in addition.
Gleap.setNetworkLogsBlacklist(["analytics.example.com", "..."]);
