1 | var winston = require('winston');
|
2 | require('winston-email');
|
3 |
|
4 | module.exports = (config, paths) => {
|
5 | var loggerConfig = {
|
6 |
|
7 | levels: {
|
8 | debug: 7,
|
9 | info: 6,
|
10 | notice: 5,
|
11 | warning: 4,
|
12 | error: 3,
|
13 | critical: 2,
|
14 | alert: 1,
|
15 | emergency: 0
|
16 | },
|
17 | colors: {
|
18 | debug: 'green',
|
19 | notice: 'white',
|
20 | info: 'blue',
|
21 | warning: 'yellow',
|
22 | error: 'red',
|
23 | critical: 'bgBlack',
|
24 | alert: 'bgYellow',
|
25 | emergency: 'bgRed'
|
26 | },
|
27 | transports: [
|
28 | new(winston.transports.Console)({
|
29 | level: 'debug',
|
30 | colorize: true
|
31 | }),
|
32 | new(winston.transports.File)({
|
33 | name: 'notice-file',
|
34 | filename: 'logs/info.log',
|
35 | level: 'info'
|
36 | }),
|
37 | new(winston.transports.File)({
|
38 | name: 'emergency-file',
|
39 | filename: 'logs/error.log',
|
40 | level: 'error'
|
41 | })
|
42 | ]
|
43 | };
|
44 |
|
45 | if(config.logs){
|
46 | if(config.logs.mail){
|
47 | loggerConfig.transports.push(new(winston.transports.Email)(config.logs.mail));
|
48 | }
|
49 | }
|
50 |
|
51 | return new(winston.Logger)(loggerConfig);
|
52 | }
|