1.0.0 • Published 4 years ago

@homeappcorporate/bugsnag-logger v1.0.0

Weekly downloads
1
License
ISC
Repository
-
Last release
4 years ago

Bugsnag Logger · npm version

####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

ParameterTypeDefaultRequiredDescription
configobjectundefinedyesConfig for the logger

See https://docs.bugsnag.com/platforms/javascript/react/configuration-options/ for configuration details

Logger instance Methods

MethodDescription
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.

Dependencies

@bugsnag/js