| Total Complexity | 5 |
| Complexity/F | 5 |
| Lines of Code | 43 |
| Function Count | 1 |
| Duplicated Lines | 0 |
| Ratio | 0 % |
| Coverage | 100% |
| Changes | 0 | ||
| 1 | 11 | import pino from 'pino'; |
|
| 2 | |||
| 3 | 11 | export function createLogger(scope?: string) { |
|
| 4 | 7 | let options: pino.LoggerOptions = {}; |
|
| 5 | 7 | if (process.env.NODE_ENV === 'production') { |
|
| 6 | 1 | options.redact = { |
|
| 7 | paths: [ |
||
| 8 | 'req.headers.authorization', |
||
| 9 | 'req.headers.cookie', |
||
| 10 | 'req.headers["x-api-key"]', |
||
| 11 | 'req.headers["x-access-token"]', |
||
| 12 | 'res.headers.set-cookie', |
||
| 13 | ], |
||
| 14 | censor: '****', |
||
| 15 | }; |
||
| 16 | } else { |
||
| 17 | 6 | options.transport = { |
|
| 18 | target: 'pino-pretty', |
||
| 19 | options: { |
||
| 20 | colorize: true, |
||
| 21 | }, |
||
| 22 | }; |
||
| 23 | } |
||
| 24 | |||
| 25 | 7 | const logger = pino( |
|
| 26 | { |
||
| 27 | msgPrefix: `[${scope ?? 'ExpressBeans'}] `, |
||
| 28 | ...options, |
||
| 29 | }, |
||
| 30 | ); |
||
| 31 | 7 | switch (process.env.NODE_ENV) { |
|
| 32 | case 'production': |
||
| 33 | 1 | logger.level = 'info'; |
|
| 34 | 1 | break; |
|
| 35 | case 'test': |
||
| 36 | 5 | logger.level = 'silent'; |
|
| 37 | 5 | break; |
|
| 38 | default: |
||
| 39 | 1 | logger.level = 'debug'; |
|
| 40 | } |
||
| 41 | 7 | return logger; |
|
| 42 | } |
||
| 43 |