Bunyan stream for Opbeat
# install bunyan
$ npm i --save bunyan
# install bunyan-opbeat
$ npm i --save bunyan-opbeatvar bunyan = require('bunyan')
var BunyanOpbeat = require('bunyan-opbeat')
var log = bunyan.createLogger({
name: 'my-logger',
streams: [
{
level: 'warn',
type: 'raw', // <-- this is mandatory so bunyan-opbeat gets the log as an object
stream: new BunyanOpbeat({
config: {
appId: '...',
organizationId: '...',
secretToken: '...',
// you can also add any other parameter that opbeat module accepts, it will be passed on
}
})
}
]
})
log.error(new Error('whoops'))Alternatively, if you've already started an opbeat instance somewhere else in your code, you can pass it directly to bunyan-opbeat and it will use it instead:
var bunyan = require('bunyan')
var BunyanOpbeat = require('bunyan-opbeat')
var opbeat = require('opbeat').start({
appId: '...',
organizationId: '...',
secretToken: '...'
})
var log = bunyan.createLogger({
name: 'my-logger',
streams: [
{
level: 'warn',
type: 'raw', // <-- this is mandatory so bunyan-opbeat gets the log as an object
stream: new BunyanOpbeat({
client: opbeat
})
}
]
})
log.error(new Error('whoops'))- note:
bunyan-opbeatrequiresopbeatclient version >= 4.8.0
bunyan-opbeat reads data coming from your bunyan logger and uses opbeat.captureError() to post it to Opbeat.
It will do it's best to pass on some common fields like user, time, hostname and level.
Anything else in your logs that opbeat can't understand will be passed as an extra field