1.0.0 • Published 5 years ago
@homeappcorporate/bugsnag-logger v1.0.0
Bugsnag Logger · 
####Introduction
Bugsnag logger for consoling and sending to https://app.bugsnag.com/ messages with given level and metadata.
Installing
$ yarn add @homeappcorporate/bugsnag-loggeror
$ npm install @homeappcorporate/bugsnag-logger --saveUsage
For initialization, you need to create an instance of the BugsnagLogger.
Basic example:
import BugsnagLogger from '@homeapp/bugsnag-logger';
const logger = new BugsnagLogger({ apiKey: 'XXX-YYY-ZZZ' });
logger.error(new Error('Some message'), { someMeta: 'someValue' });
logger.info('Info message', { someMeta: 'someValue' });Logger constructor Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
| config | object | undefined | yes | Config for the logger |
See https://docs.bugsnag.com/platforms/javascript/react/configuration-options/ for configuration details
Logger instance Methods
| Method | Description |
|---|---|
| error(event, metadata) | Sending a given event with error level and metadata |
| info(event, metadata) | Same as error(event, metadata) but with level info |
| warn(event, metadata) | Same as error(event, metadata) but with level warn |
Usage example with React plugin
/utils/logger/index.js
import BugsnagLogger from '@homeapp/bugsnag-logger';
const logger = new BugsnagLogger({
apiKey: 'XXX-YYY-ZZZ',
enabledReleaseStages: ['production'],
releaseStage: 'production',
appVersion: '1.0.0',
});
export default logger;/src/index.jsx
import React from 'react';
import Bugsnag from '@bugsnag/js';
const reactLoggerPlugin = Bugsnag.getPlugin('react');
const LoggerWrapper: ElementType = reactLoggerPlugin ? reactLoggerPlugin.createErrorBoundary(React) : React.Fragment;
//-- other code --//
export default App = () => {
return (
<LoggerWrapper>
<Provider store={{}}>
<Component />
</Provider>
</LoggerWrapper>
);
};/src/components/SomeComponent.jsx
import logger from './logger.js';
export default SomeComponent = () => {
const handleClick = () => {
logger.error(new Error('Some message'), { someMeta: 'someValue' });
};
const handleThrowError = () => {
throw new Error('custom unhandle error', { otherMeta: 'other error value', version: 'some version' });
};
return (
<div>
<h1>Test component</h1>
<button onClick={handleClick}>Log custom error</button>
<button onClick={handleThrowError}>Throw unhandle error</button>
</div>
);
};This logger catches all unhandled errors, and send it to your bugsnag project page.