@renanmalato/logger-plus
Version:
A powerful and easy-to-use logging utility for React Native and Expo applications. @renanmalato/logger-plus provides a consistent way to log messages with different levels of severity (info, success, warning, error) and includes timestamps for each log en
224 lines (129 loc) • 6.25 kB
Markdown
This custom logger provides a breathable and consistent way to log messages with different levels of severity (info, success, warn, error) and includes timestamps for each log entry. It is a very light weight library designed specifically for React Native and Expo projects Javascript but it also can be used in TypeScript and CommonJS.
<img src="https://github.com/renanmalato/logger-plus/blob/main/assets/logo.jpg" alt="logo" style="border-radius: 10px;">
If you have something to contribute please visit our GitHub repository. If you consider this package helpful also you can consider support on the Buy Me a Coffee shield.
<div style="display: flex; gap: 10px; align-items: center;">
<a href="https://www.buymeacoffee.com/renanmalato" target="_blank">
<img src="https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-1.svg" alt="Buy Me A Coffee" style="width: 130px">
</a>
<a href="https://github.com/renanmalato/logger-plus" target="_blank">
<img src="https://img.shields.io/badge/GitHub-000000?style=for-the-badge&logo=github&logoColor=white" alt="GitHub Repository" style="width: auto; height: 45px;">
</a>
<a href="https://www.npmjs.com/package/@renanmalato/logger-plus" target="_blank">
<img src="https://img.shields.io/npm/v/@renanmalato/logger-plus?style=flat-square" alt="NPM Version" style="width: auto; height: 45px;">
</a>
</div>
First, ensure you have the `@renanmalato/logger-plus` package in your project by installing it via npm:
```sh
npm install @renanmalato/logger-plus
```
For React Native Import using Expo:
```javascript
import Logger from '@renanmalato/logger-plus';
```
For Common Javascript (CommonJS):
```javascript
const Logger = require('@renanmalato/logger-plus');
```
<img src="https://github.com/renanmalato/logger-plus/blob/main/assets/logger-printscreen.jpg" alt="Print in Action" style="border-radius: 10px;">
<br>
The Logger provides several methods for logging messages:
<br>
<strong>• 1st Case: Message and Screen name</strong>
- `Logger.log('Message goes here', 'Screen or Function Name');`
<br>
<img src="https://github.com/renanmalato/logger-plus/blob/main/assets/logger-log-msg-screen.jpg" alt="Logger message and function screen name" style="border-radius: 10px;">
<br><br>
<strong> • 2nd Case: Message, Screen name and Variable </strong>
- `Logger.info('Message goes here', 'Screen or Function Name', variable);`
<br>
<img src="https://github.com/renanmalato/logger-plus/blob/main/assets/logger-info-msg-screen.jpg" alt="logger log message and function screen name and variable" style="border-radius: 10px;">
<br><br>
<strong>• 3rd Case: Logs only Message </strong>
- `Logger.info('Message goes here');`
<br>
<img src="https://github.com/renanmalato/logger-plus/blob/main/assets/logger-only-message.jpg" alt="Logs only Message" style="border-radius: 10px;">
<br><br>
<strong> • 4th Case: Log Success with Object </strong>
- `Logger.success('Message goes here', 'Screen or Function Name', object);`
<img src="https://github.com/renanmalato/logger-plus/blob/main/assets/logger-success-object.jpg" alt="Log Success" style="border-radius: 10px;">
<br><br>
<strong> • 5th Case: Log Box </strong>
- `Logger.box('Debug here', 'Screen or Function Name');`
<img src="https://github.com/renanmalato/logger-plus/blob/main/assets/logger-box.jpg" alt="Log Success" style="border-radius: 10px;">
<br><br>More cases...
- `Logger.log(message, screenOrFunction, ...messages)`
- `Logger.success(message, screenOrFunction, ...messages)`
- `Logger.info(message, screenOrFunction, ...messages)`
- `Logger.warning(message, screenOrFunction, ...messages)`
- `Logger.error(message, screenOrFunction, ...messages)`
- `Logger.line(message, ...messages)`
- `Logger.box(message, ...messages)`
*(knowing issue - Logger.line in some screens warn no formatText variable found. Working on it. Use Logger.log for more simple logging instead or console.log)*
.
- `message (string)`: The primary log message.
- `screenOrFunction (string, optional)`: The source of the log message, such as the screen or function name. If omitted, defaults to (not called).
- `variable (values / objects)`: Log variable values.
### Examples
#### Basic Usage
```javascript
import Logger from '@renanmalato/logger-plus';
const variable = "string variable";
// Basic log
Logger.log('This is a simple log message');
// Info log with source
Logger.info('Fetching data:', 'DataScreen');
// Success log
Logger.success('Data fetched successfully:', 'DataScreen', variable);
// Warn log
Logger.warn('Data fetch took too long:', 'DataScreen');
// Error log
Logger.error('Failed to fetch data:', 'DataScreen', variable);
// Line log (without source)
Logger.line('This is a simple line log');
// Line box
Logger.box('This is a box log');
```
```javascript
import React from 'react';
import { View, Text } from 'react-native';
import Logger from '@renanmalato/logger-plus';
const ExampleComponent = () => {
const variable = "string variable";
const object = {
name: 'Renan',
age: 23,
};
useEffect(() => {
Logger.info('Message:', 'App.js');
Logger.info('Message:', 'App.js', variable);
Logger.info('Object:', 'App.js', object);
Logger.info(variable);
Logger.success('Successfully updated cart count to', 'CartScreen', variable);
Logger.warning('Warning: Cart count is getting high', 'CartScreen', object);
Logger.error('Error: Something went wrong with cart count', 'CartScreen', variable);
Logger.log('Logging a simple message');
Logger.line('This is a simple line log');
Logger.box('Debug Here');
}, []);
return (
<View>
<Text>Hello, world!</Text>
</View>
);
};
export default ExampleComponent;
```
If you encounter any issues or have suggestions for improvements, feel free to open an issue or submit a pull request on GitHub.
Created by renanmalato
This project is licensed under the MIT License.