@webinmove/gazeti

1.0.3 • Public • Published

Gazeti

Description

Gazeti means "log" in Swahili.

A basic Logger object that force a logging format for a correct logstash extraction

Environment Variables

LOG_LEVEL # (optional) Defines you log level, defaut 'info'
LOG_STACK_LEVEL # (optional) Defines minimum level to log stack, default 'error'
LOG_PRETTY # (optional) Defines pretty print output, default false
LOG_LABELS # (optional) Defines if log labels should be used instead of levels, default false
LOG_ERROR_MESSAGE_LENGTH # (optional) Defines error message max length output, default 0 (no limit)
BUILD_NUMBER # (optional) Can be used if we do not use the version.json (see below)

Notes:

  • LOG_ENDPOINT is intended to be used with AWS Lambda and will be over UDP
  • LOG_PRETTY is intended to be used in local development
  • LOG_ERROR_MESSAGE_LENGTH is intended to be used when package like request log full request content with files...

Automatic loads

This logger automatically loads info from the package.json but also from a version.json file if present at the root of the project.

version.json structure

{
  "projectName": "my-project",
  "buildNumber": "120",
  "commit": "a8f571799deb70dae2da3ba1de62097700bde304"
}

Usage

const log = require('@webinmove/gazeti')
  .create({ module: module.id });

log.debug('event', {
  user: {
    id : 132
  }
}, {
  user: {
    name: 'Someone'
  }
},
'TRACE-ID-XXXXXXX');

The indexed and raw parameters are optional. They can be or they can contain an Error object in a error field which will be serialized

Here are the different logging methods:

log.debug(event, indexed, raw, traceId);
log.info(event, indexed, raw, traceId);
log.warn(event, indexed, raw, traceId);
log.error(event, indexed, raw, traceId);
log.fatal(event, indexed, raw, traceId);

Output

With this code and a version.json file present:

log.error('ERROR_EVENT', { error: new Error('Some error') }, { foo: 'bar' }, 'TRACE-ID-XXXXXXX');
{
  "level": 50,
  "time": "2019-01-01T00: 00: 00.000Z",
  "hostname": "my-hostname",
  "pid": 71202,
  "version": "1.0.1",
  "projectName": "gazeti",
  "buildNumber": "120",
  "commit": "a8f571799deb70dae2da3ba1de62097700bde304",
  "name": "my-service",
  "module": "mymodule",
  "event": "ERROR_EVENT",
  "indexed": {
    "error": {
      "type": "Error",
      "message": "Some error",
      "stack": "Error: Some error\n    at Context.it (/var/www/gazeti/test/libs/Gazeti.spec.js:191:31)\n    at callFnAsync (/var/www/gazeti/node_modules/mocha/lib/runnable.js:400:21)\n    at Test.Runnable.run (/var/www/gazeti/node_modules/mocha/lib/runnable.js:342:7)\n    at Runner.runTest (/var/www/gazeti/node_modules/mocha/lib/runner.js:455:10)\n    at /var/www/gazeti/node_modules/mocha/lib/runner.js:573:12\n    at next (/var/www/gazeti/node_modules/mocha/lib/runner.js:369:14)\n    at /var/www/gazeti/node_modules/mocha/lib/runner.js:379:7\n    at next (/var/www/gazeti/node_modules/mocha/lib/runner.js:303:14)\n    at Immediate._onImmediate (/var/www/gazeti/node_modules/mocha/lib/runner.js:347:5)\n    at runCallback (timers.js:694:18)\n    at tryOnImmediate (timers.js:665:5)\n    at processImmediate (timers.js:647:5)"
    }
  },
  "raw": {
    "foo": "bar"
  },
  "traceId": "TRACE-ID-XXXXXXX",
  "v":1
}

Readme

Keywords

Package Sidebar

Install

npm i @webinmove/gazeti

Weekly Downloads

249

Version

1.0.3

License

MIT

Unpacked Size

8.94 kB

Total Files

5

Last publish

Collaborators

  • satblip
  • oliviercuyp