Source: reporter/console_logger.js

import { Logger } from './logger.js';
import { Reporter } from './reporter.js';

/** Default logger that logs to console */
class ConsoleLogger extends Logger {

    /**
     * @param {SyslogLevel} fromLevel
     * @param {Reporter} reporter
     */

    constructor(fromLevel, reporter) {
        super(fromLevel, reporter);
    }

    static levelMap = {
        'emergency': 'error',
        'critical': 'error',
        'alert': 'error',
        'error': 'error',
        'warning': 'warn',
        'notice': 'info',
        'info': 'log',
        'debug': 'debug',
    }

    log(log) {
        const label = log.source.name ? log.source.type + ' ' + log.source.name : log.source.type + ' ' + (log.source.id || 'xxxx').substr(0,4);
        return console[ ConsoleLogger.levelMap[ log.level ] ]( `${label}: ${log.msg}` )
        // return console.log( log.source.type + ' ' + log.msg )
    }
}

export { ConsoleLogger }