chpr-logger
TypeScript icon, indicating that this package has built-in type declarations

3.3.0 • Public • Published

Logger for NodeJS

This utility library implements our standard Bunyan + Sentry configuration

Requirements

Minimum Node.js version: 4

Installation

npm install --save chpr-logger

Configuration

Key Required Description
LOGGER_NAME yes Sets the name of the logger.
LOGGER_LEVEL yes Set the minimum level of logs.
SENTRY_DSN no Sets the Sentry stream. (bunyan-sentry-stream)
SENTRY_ENVIRONMENT no Sets the Sentry Environment.
USE_BUNYAN_PRETTY_STREAM no Outputs the logs on stdout with the pretty formatting from Bunyan. Must be set to true to be active. (bunyan-prettystream)
LOGGER_USE_SENSITIVE_DATA_STREAM no Use the sensitive data stream to remove any possible sensitive data from the logs (enabled by default, false to use the process.stdout stream).
LOGGER_SENSITIVE_DATA_PATTERN no Pattern fragments to match sensitive keys (default is (mdp|password|authorization|token|pwd|auth)).

Use

'use strict';
 
const logger = require('chpr-logger');
 
/* The signature is logger[level](context, message) where:
- context is an object containing all info to be logged
- context may be passed an `err` property that is an error and will be used by
  sentry to regroup errors and capture proper stacktraces
- message is just a string explaining what the log is
 
As in bunyan, context is optional and logger[level](message) can also work.
*/
 
// Log a fatal error message:
logger.fatal({ err: new Error('Fatal'), field: 'additional info' }, 'fatal message');
 
// Log an error message:
logger.error({ err: new Error('Error'), anotherField: 'extra context' }, 'error message');
 
// Log a warning message:
logger.warn({ err: new Error('Warn'), userId:'1e7b8d', age: 17 }, 'User is under 18');
 
// Log an informational message:
logger.info({ field: 1 }, 'info message');
 
// Log a debug message:
logger.debug({ user }, 'debug message');
 
// Log a trace message:
logger.trace({ fields: [1, 2, 66]] }, 'trace message');
 

Sensitive Data

chpr-logger can filter sensitive data based on specific keys and replace the values by __SENSITIVE_DATA__ string. This feature is enabled by default but you can skip this (not recommanded) by setting the environment variable LOGGER_USE_SENSITIVE_DATA_STREAM to false.

In addition, you can update the pattern on which to make the match with the environment variable LOGGER_SENSITIVE_DATA_PATTERN. Its value must represent a valid capturing regular expression.

Dependencies (6)

Dev Dependencies (7)

Package Sidebar

Install

npm i chpr-logger

Weekly Downloads

153

Version

3.3.0

License

MIT

Unpacked Size

20.8 kB

Total Files

19

Last publish

Collaborators

  • cptechadmin