UNPKG

947 BJavaScriptView Raw
1/**
2 * The main module of the logger package.
3 */
4
5'use strict';
6
7var winston = require( 'winston' );
8var peliasConfig = require( '../config' );
9
10var pkgConfig = peliasConfig.generate().logger;
11
12function createLogger( name, loggerOpts ){
13 if( loggerOpts === undefined ){
14 loggerOpts = {
15 transports: [
16 new winston.transports.Console( {
17 colorize: pkgConfig.colorize,
18 timestamp: pkgConfig.timestamp,
19 level: pkgConfig.level,
20 label: name
21 })
22 ]
23 };
24 }
25
26 return new winston.Logger( loggerOpts );
27}
28
29var loggers = {};
30
31/**
32 * If a logger named `name` exists, return it; otherwise, create a new one.
33 */
34function getLogger( name, loggerOpts ){
35 if( name in loggers ){
36 return loggers[ name ];
37 }
38 else {
39 var logger = new createLogger( name, loggerOpts );
40 loggers[ name ] = logger;
41 return logger;
42 }
43}
44
45module.exports = {
46 get: getLogger,
47 winston: winston
48};