Bugsnag execution subscriber for logtify logger
npm i -S logtify-bugsnag
Used with logtify module.
require('logtify-bugsnag')({ BUGS_TOKEN: 'YOUR_BUGSNAG_TOKEN' });
const { notifier } = require('logtify')();
notifier.notify(new Error('Test error'));
notifier.notify('Hello world!');
BEWARE!!
// if required after subscriber, adapter will be undefined
let { notifier } = require('logtify')();
require('logtify-bugsnag')({ BUGS_TOKEN: 'YOUR_BUGSNAG_TOKEN' });
// notifier is undefined
// So, you need to refresh the logtify module:
let { notifier } = require('logtify')();
// typeof notifier === 'object'
notifier.notify(new Error('Test error'));
notifier.notify('Hello world!');
However you can overcome it if you use plain ES5 require syntax:
const logtify = require('logtify')();
require('logtify-bugsnag')({ BUGS_TOKEN: 'YOUR_BUGSNAG_TOKEN' });
const notifier = logtify.notifier;
// typeof notifier === 'object'
notifier.notify(new Error('Test error'));
notifier.notify('Hello world!');
The subscriber will make sure that a message will be sent to Bugsnag if:
message.level === 'error'
process.env.BUGSNAG_LOGGING === 'true' || settings.BUGSNAG_LOGGING === true
To set the message.level to be error
, make sure to use one of the following:
const { stream, logger } = require('logtify')();
stream.log('error', new Error('Hello world'), { my: 'metadata' }); // error can also be passed as an arg
logger.log('error', 'Hello world', { my: 'metadata' }); // or a string
logger.error('Hello world', { my: 'metadata'});
Or with a BugsnagAdapter
:
const { notifier } = require('logtify')();
notifier.notify('Hello world');
An adapter also exposes standard bugsnag's requestHandler
and errorHandler
:
require('logtify-bugsnag')();
const { notifier } = require('logtify')();
notifier.requestHandler;
notifier.errorHandler;
process.env.BUGSNAG_LOGGING = 'true' || BUGSNAG_LOGGING: true
- Switching on / off the subscriber and adapter. On by defaultprocess.env.BUGS_TOKEN = 'TOKEN' || BUGS_TOKEN: 'TOKEN'
- your Bugsnag tokenprocess.env.BUGSNAG_RELEASE_STAGES = 'production,staging'
- comma separated list of bugsnag release stages
Settings: Module can be configured by both env variables or config object. However, env variables have a higher priority.
{
BUGSNAG_LOGGING: true|false
BUGS_TOKEN: 'YOUR_BUGSNAG_TOKEN'
BUGSNAG_RELEASE_STAGES: ''
BUGSNAG_APP_VERSION: '1.2.3'
LOG_TIMESTAMP = 'true'
LOG_ENVIRONMENT = 'true'
LOG_LEVEL = 'true'
LOG_REQID = 'true' // only included when provided with metadata
LOG_CALLER_PREFIX = 'true' // additional prefix with info about caller module/project/function
}