|
1 |
| -const winston = require('winston'); |
| 1 | +const { createLogger, format, transports } = require('winston'); |
| 2 | +const { combine, colorize, label, printf, splat } = format; |
2 | 3 | // TODO: rm LOG_LEVEL and LOG_LEVEL_xxx env vars and configure it system config;
|
3 | 4 | // system config will provide env vars support
|
4 | 5 |
|
5 |
| -const colorize = process.env.LOG_COLORIZE !== 'false'; |
6 |
| -const timestamp = process.env.LOG_TIMESTAMP === 'true'; |
| 6 | +const logFormat = (loggerLabel) => combine( |
| 7 | + splat(), |
| 8 | + colorize(), |
| 9 | + label({ label: loggerLabel }), |
| 10 | + printf(info => `${info.label} ${info.level}: ${info.message}`) |
| 11 | +); |
7 | 12 |
|
8 |
| -winston.loggers.add('EG:gateway', { |
9 |
| - console: { |
10 |
| - level: process.env.LOG_LEVEL_GATEWAY || process.env.LOG_LEVEL || 'warn', |
11 |
| - colorize, |
12 |
| - timestamp, |
13 |
| - label: 'EG:gateway' |
14 |
| - } |
15 |
| -}); |
16 |
| -winston.loggers.add('EG:policy', { |
17 |
| - console: { |
18 |
| - level: process.env.LOG_LEVEL_POLICY || process.env.LOG_LEVEL || 'warn', |
19 |
| - colorize, |
20 |
| - timestamp, |
21 |
| - label: 'EG:policy' |
22 |
| - } |
23 |
| -}); |
24 |
| -winston.loggers.add('EG:admin', { |
25 |
| - console: { |
26 |
| - level: process.env.LOG_LEVEL_ADMIN || process.env.LOG_LEVEL || 'warn', |
27 |
| - colorize, |
28 |
| - timestamp, |
29 |
| - label: 'EG:admin' |
30 |
| - } |
31 |
| -}); |
32 |
| -winston.loggers.add('EG:test', { |
33 |
| - console: { |
34 |
| - level: process.env.LOG_LEVEL_TEST || process.env.LOG_LEVEL || 'warn', |
35 |
| - colorize, |
36 |
| - timestamp, |
37 |
| - label: 'EG:test' |
38 |
| - } |
39 |
| -}); |
40 |
| -winston.loggers.add('EG:config', { |
41 |
| - console: { |
42 |
| - level: process.env.LOG_LEVEL_CONFIG || process.env.LOG_LEVEL || 'warn', |
43 |
| - colorize, |
44 |
| - timestamp, |
45 |
| - label: 'EG:config' |
46 |
| - } |
47 |
| -}); |
48 |
| -winston.loggers.add('EG:db', { |
49 |
| - console: { |
50 |
| - level: process.env.LOG_LEVEL_DB || process.env.LOG_LEVEL || 'warn', |
51 |
| - colorize, |
52 |
| - timestamp, |
53 |
| - label: 'EG:db' |
54 |
| - } |
55 |
| -}); |
56 |
| -winston.loggers.add('EG:plugins', { |
57 |
| - console: { |
58 |
| - level: process.env.LOG_LEVEL_PLUGINS || process.env.LOG_LEVEL || 'warn', |
59 |
| - colorize, |
60 |
| - timestamp, |
61 |
| - label: 'EG:plugins' |
62 |
| - } |
| 13 | +const createLoggerWithLabel = (label) => createLogger({ |
| 14 | + level: process.env.LOG_LEVEL_GATEWAY || process.env.LOG_LEVEL || 'warn', |
| 15 | + transports: [new transports.Console({})], |
| 16 | + format: logFormat(label) |
63 | 17 | });
|
64 | 18 |
|
65 |
| -winston.level = process.env.LOG_LEVEL || 'warn'; |
66 | 19 | module.exports = {
|
67 |
| - gateway: winston.loggers.get('EG:gateway'), |
68 |
| - policy: winston.loggers.get('EG:policy'), |
69 |
| - test: winston.loggers.get('EG:test'), |
70 |
| - config: winston.loggers.get('EG:config'), |
71 |
| - db: winston.loggers.get('EG:db'), |
72 |
| - admin: winston.loggers.get('EG:admin'), |
73 |
| - plugins: winston.loggers.get('EG:plugins') |
| 20 | + gateway: createLoggerWithLabel('[EG:gateway]'), |
| 21 | + policy: createLoggerWithLabel('[EG:policy]'), |
| 22 | + config: createLoggerWithLabel('[EG:config]'), |
| 23 | + db: createLoggerWithLabel('[EG:db]'), |
| 24 | + admin: createLoggerWithLabel('[EG:admin]'), |
| 25 | + plugins: createLoggerWithLabel('[EG:plugins]') |
74 | 26 | };
|
0 commit comments