UNPKG

1.34 kBJavaScriptView Raw
1var winston = require('winston');
2require('winston-email');
3
4module.exports = (config, paths) => {
5 var loggerConfig = {
6 //Log Levels based in RFC 5424 (https://tools.ietf.org/html/rfc5424)
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}