@homeappcorporate/bugsnag-logger
v1.0.0
Published
####Introduction
Downloads
3
Readme
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-logger
or
$ npm install @homeappcorporate/bugsnag-logger --save
Usage
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.