A powerful in-app logging and debugging package for React Native, designed specifically for QA and development builds. Inspired by Loggycian for Flutter, this package provides a comprehensive logging solution with a beautiful UI for viewing logs, network requests, and errors directly inside your app.
Debugging mobile apps is painful β logs are scattered across Metro, Logcat, Xcode and network inspectors. QA teams struggle to reproduce issues. Developers lose time switching tools.
react-native-qa-logger brings everything inside your app itself. One button. One console. All logs. All network calls. All errors.
- In-App Debug Console (Bottom Sheet UI)
- Floating Draggable Debug Button (snap-to-edge)
- Axios Network Request & Response Logging
- Global JS Error & Promise Rejection Capture
- Color Coded Logs
- Expandable Log Items
- Search & Filter (All, Network, Errors)
- Zero Production Impact (Disabled in Prod)
- Full TypeScript Support
- 100% JS β No Native Code
npm install react-native-qa-logger
# or
yarn add react-native-qa-loggerimport React, { useState } from 'react';
import { SafeAreaView } from 'react-native';
import axios from 'axios';
import {
logger,
setupNetworkLogger,
setupErrorHandlers,
DebugButton,
DebugConsole,
} from 'react-native-qa-logger';
const apiClient = axios.create({
baseURL: 'https://api.example.com',
});
setupNetworkLogger(apiClient);
setupErrorHandlers();
export default function App() {
const [visible, setVisible] = useState(false);
return (
<SafeAreaView style={{ flex: 1 }}>
<DebugButton onPress={() => setVisible(true)} />
<DebugConsole visible={visible} onClose={() => setVisible(false)} />
</SafeAreaView>
);
}logger.info('User logged in', { userId: 12 });
logger.warn('Slow API', { duration: 4800 });
logger.error('Payment failed', error);setupNetworkLogger(apiClient, {
sensitiveHeaders: ['authorization', 'x-api-key'],
maxBodyLength: 10000,
});setupErrorHandlers();Captures:
- Global JS errors
- Unhandled promise rejections
- Console errors
Draggable floating debug button.
<DebugButton onPress={() => setVisible(true)} />Bottom sheet debug console.
<DebugConsole visible={visible} onClose={() => setVisible(false)} />logger.configure({ maxLogs: 500 });Shubhanshu Barnwal Open-Source Author & React Native Engineer π https://shubhanshubb.dev π§ connect@shubhanshubb.dev
For feature requests, integrations, paid support, or consulting β feel free to reach out.
- Fetch API logger
- Export logs
- Share logs
- Log persistence
- Performance metrics
- Screenshot capture
MIT
Made with β€οΈ by Shubhanshu Barnwal Open-Source Author of
react-native-qa-loggerπ https://shubhanshubb.dev | π§ connect@shubhanshubb.dev
