pelias-logger
Version:
The centralized logger package for Pelias.
52 lines (43 loc) • 1.07 kB
JavaScript
/**
* The main module of the logger package.
*/
;
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
};