@thecolvinco/nodejs-logger
TypeScript icon, indicating that this package has built-in type declarations

0.6.1 • Public • Published

Colvin nodejs logger

A logger abstraction to log message with standard structure and with some useful middlewares

Logger usage

import { Logger } from '@thecolvinco/nodejs-logger';

const logger = new Logger({
  appName: 'My foo app',
  appVersion: '1',
  enviroment: 'production',
  isProduction: true,
  loggerOptions: {}, // Optional for override pourpose
});

logger.info('A simple message')
logger.info('Some fancy message with tags', { tags: ['super-drama', 'fancy-error'] })
logger.info('Some fancy message with tags and extra object data', { tags: ['super-drama', 'fancy-error'], meta: { foo: 'bar' } })

Development output

{
  tags: [ 'super-drama', 'fancy-error' ],
  meta: { foo: 'bar' },
  level: 'info',
  message: 'Some fancy message with tags and extra object data'
}

Production output

{"version":"1","appName":"My foo app","enviroment":"production","tags":["super-drama","fancy-error"],"meta":{"foo":"bar"},"level":"info","message":"Some fancy message with tags and extra object data"}

Middleware usages

import { Logger, expressErrorMiddleware, expressWinstonRequestMiddleware } from '@thecolvinco/nodejs-logger';

const server = express();
const logger = new Logger(
  {
    appName: 'foo',
    appVersion: '1',
    enviroment: 'production',
    isProduction: true,
  }
);

// Log non controlled errors
server.use(expressErrorMiddleware(logger));

// Log all express requests with winston
server.use(expressWinstonRequestMiddleware(logger);

// Log all express requests with winston adding some winston options
server.use(expressWinstonRequestMiddleware(logger, {
  headerBlacklist: ['cookie'],
  dynamicMeta: (req) => ({
    countryCode: req?.cookies?.hc,
    locale: req?.cookies?.hl,
  })},
));

About

This package is maintained by TheColvinCo

LICENSE

Code is licensed under the MIT License.

Dependents (0)

Package Sidebar

Install

npm i @thecolvinco/nodejs-logger

Weekly Downloads

33

Version

0.6.1

License

MIT

Unpacked Size

66.8 kB

Total Files

23

Last publish

Collaborators

  • klaufel
  • hydrangea