@blackbox-vision/react-native-logger
v0.0.1
Published
> TODO: description
Downloads
3
Readme
RN logger
This package let us use Firebase Crashlytics to generate info logs and track errors.
Install
You can install this library via NPM or YARN.
NPM
npm i @blackbox-vision/react-native-logger
YARN
yarn add @blackbox-vision/react-native-logger
Use case
This library let us solve 4 use cases:
- Set user to track
- Log info
- Log errors
- Log errors in services
Usage
Initialize
import React, { useEffect } from 'react';
import * as logger from '@blackbox-vision/react-native-logger';
const App = () => {
useEffect(() => {
logger.initialize()
.then(() => console.info('logger initialize success'))
.catch(() => console.info('logger initialize error'));
}, []);
return ...
}
Set user to track
import * as logger from "@blackbox-vision/react-native-logger";
import { AuthService } from "../auth-service";
const handleLogin = (email: string, password: string) => {
logger.info("Login user ...");
const user = await AuthService.login(email, password);
if (!!user) {
await logger.setUser(user.id, {
fullName: `${user.name} ${user.last_name}`,
segment: user.segment,
});
// Este log va a estar asociado a los datos previamente enviados a Crashlytics
logger.info("Setteamos el user ...");
}
};
Info logs
import * as logger from "@blackbox-vision/react-native-logger";
const handleAction = async () => {
logger.info("some useful information log ...");
};
Error logs
import * as logger from '@blackbox-vision/react-native-logger';
const handleAction = async () => {
try {
logger.info('generating log ...');
// Some async action that could cause an error
...
} catch (err: Error) {
logger.error('handling error ...', err);
}
};
Error logs in service consumption
import * as logger from '@blackbox-vision/react-native-logger';
import { httpClient } from '../http-client';
export const login = async (email: string, password: string) => {
const request = {
url: `/login`,
method: `POST`,
data: {
email,
password,
},
};
let response = null;
try {
response = await httpClient(request);
...
} catch (err: Error) {
logger.serviceError(request, response, err);
}
};
API
logger.initialize(options?)
This function let us initialize the logger.
options
Type: Object
Receives an object that let you configure the crashlytics instance:
errorCollectionEnabled
:Boolean
-true
- setting this option let you track native errors automatically.
logger.setUser(userId, attributes)
This function let you set user information to track logs and errors.
userId
Type: String
It represents the user ID to track.
attributes
Type: Object
It represents the user related attributes.
logger.setUserAttributes(attributes)
This function let you set additional user attributes.
attributes
Type: Object
It represents the user related attributes.
logger.info(msg)
This function let us send an information log to crashlytics.
msg
Type: String
The message to send.
logger.error(msg, err)
This function let us send an error log to crashlytics.
msg
Type: String
The message to send.
err
Type: Error
The error object to send.
logger.serviceError(req, res, err)
This function let us send an error when a service fails.
req
Type: Request
The request object.
res
Type: Response
The response object.
err
Type: Error
The error object.
Issues
Please, open an issue following one of the issues templates. We will do our best to fix them.
Contributing
If you want to contribute to this project see contributing for more information.
License
Distributed under the MIT license. See LICENSE for more information.