UNPKG

pelias-logger

Version:

The centralized logger package for Pelias.

52 lines (43 loc) 1.07 kB
/** * The main module of the logger package. */ 'use strict'; var winston = require( 'winston' ); var peliasConfig = require( 'pelias-config' ); var pkgConfig = peliasConfig.generate().logger; function CreateLogger( name, loggerOpts ){ if( loggerOpts === undefined ){ loggerOpts = { transports: [ new winston.transports.Console( { colorize: pkgConfig.colorize, json: pkgConfig.json, stringify: true, timestamp: pkgConfig.timestamp, level: pkgConfig.level, label: name, stderrLevels: ["emerg", "alert", "crit", "error"] }) ] }; } return new winston.Logger( loggerOpts ); } var loggers = {}; /** * If a logger named `name` exists, return it; otherwise, create a new one. */ function getLogger( name, loggerOpts ){ if( name in loggers ){ return loggers[ name ]; } else { var logger = new CreateLogger( name, loggerOpts ); loggers[ name ] = logger; return logger; } } module.exports = { get: getLogger, winston: winston };