1 |
|
2 |
|
3 |
|
4 |
|
5 | 'use strict';
|
6 |
|
7 | var winston = require( 'winston' );
|
8 | var peliasConfig = require( '../config' );
|
9 |
|
10 | var pkgConfig = peliasConfig.generate().logger;
|
11 |
|
12 | function 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 |
|
29 | var loggers = {};
|
30 |
|
31 |
|
32 |
|
33 |
|
34 | function 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 |
|
45 | module.exports = {
|
46 | get: getLogger,
|
47 | winston: winston
|
48 | };
|