| Total Complexity | 4 | 
| Total Lines | 30 | 
| Duplicated Lines | 0 % | 
| Changes | 0 | ||
| 1 | /* eslint-disable promise/prefer-await-to-callbacks */ | ||
| 8 | export default class Console extends Transport { | ||
| 9 |     constructor(options = {}) { | ||
| 10 | super(options); | ||
| 11 | this.name = options.name || 'console'; | ||
| 12 | this.eol = options.eol || os.EOL; | ||
| 13 | this.logger = options.logger || console; | ||
| 14 | this.fallBackLogger = options.fallBackLogger || defaultLogger; | ||
| 15 |         this.handlers = options.levels || {}; | ||
| 16 | this.sanitizer = options.sanitizer || defaultSanitizer; | ||
| 17 | this.setMaxListeners(options.maxListeners || defaultMaxListeners); | ||
| 18 | } | ||
| 19 | |||
| 20 |     log(info, callback) { | ||
| 21 |         setImmediate(() => { | ||
| 22 |             this.emit('logged', info); | ||
| 23 | }); | ||
| 24 | const level = info[LEVEL]; | ||
| 25 | const message = info[MESSAGE]; | ||
| 26 | |||
| 27 | const log = [ | ||
| 28 | this.handlers[level], | ||
| 29 | this.logger[this.handlers[level]], | ||
| 30 | this.logger[level], | ||
| 31 | this.fallBackLogger | ||
| 32 | ].find((element) => isLoggable(element)); | ||
| 33 | |||
| 34 | log(this.sanitizer(message)); | ||
| 35 | callback(); | ||
| 36 | } | ||
| 37 | } | ||
| 38 |