good-bunyan

3.0.1 • Public • Published

good-bunyan

good-bunyan is a good reporter implementation to write hapi server events to a bunyan logger.

Install

npm install good-bunyan --save

Usage

new GoodBunyan(events, config)

Creates a new GoodBunyan object with the following arguments:

  • events - an object of key value pairs.
    • key - one of the supported good events indicating the hapi event to subscribe to
    • value - a single string or an array of strings to filter incoming events. "*" indicates no filtering. null and undefined are assumed to be "*"
  • config - configuration object with the following available keys:
    • logger (required): bunyan logger instance;
    • levels: object used to set the default bunyan level for each good event type. Each key is a good event (ops, response, log, error and request), and the values must be a bunyan level (trace, debug, info, error or fatal). Please note that good-bunyan will first try to look for a valid bunyan level within the event tags (e.g. using the tag ['error', 'handler'] will result in using the bunyan 'error' level);
    • formatters: object used to override the message passed to buyan. Each key is a good event (ops, response, log, error and request), and the values must be functions which take an object data as the argument and output either a string or an array of arguments to be passed to the bunyan log method. Default formatter functions can be found here.

Example

const Hapi = require('hapi');
const bunyan = require('bunyan');
 
const logger = bunyan.createLogger({ name: 'myapp', level: 'trace' });
const server = new Hapi.Server();
 
server.connection({ host: 'localhost' });
 
const options = {
  reporters: {
    bunyan: [{
      module: 'good-bunyan',
      args: [
        { ops: '*', response: '*', log: '*', error: '*', request: '*' },
        {
          logger: logger,
          levels: {
            ops: 'debug'
          },
          formatters: {
            response: (data) => {
              return 'Response for ' + data.path;
            }
          }
        }
      ]
    }]
  }
};
 
server.register(
  {
    register: require('good'),
    options: options
  },
  (err) => {
    if (err) {
      throw err;
    }
 
    server.route({
      path: '/',
      method: 'GET',
      handler: (request, reply) => {
        return reply({ 'hello': 'world' });
      }
    });
 
    server.start((err) => {
      if (err) {
        throw err;
      }
 
      server.log('info', 'Server started at ' + server.info.uri);
      logger.debug('tiago');
    });
  }
);
 

Example with custom msg

server.log('info', { msg: 'Server started', uri: server.info.uri }; 

Compatibility

good-bunyan complies with the good 7.x.x API.

Credits

Inspired by good-console.

Package Sidebar

Install

npm i good-bunyan

Weekly Downloads

486

Version

3.0.1

License

MIT

Unpacked Size

30.9 kB

Total Files

11

Last publish

Collaborators

  • muzzley
  • tiagoalves