{"version":3,"file":"ConsoleLogger.mjs","sources":["../../../src/Logger/ConsoleLogger.ts"],"sourcesContent":["/* eslint-disable no-console */\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AWS_CLOUDWATCH_CATEGORY } from '../constants';\nimport { LogType } from './types';\nconst LOG_LEVELS = {\n    VERBOSE: 1,\n    DEBUG: 2,\n    INFO: 3,\n    WARN: 4,\n    ERROR: 5,\n    NONE: 6,\n};\n/**\n * Write logs\n * @class Logger\n */\nexport class ConsoleLogger {\n    /**\n     * @constructor\n     * @param {string} name - Name of the logger\n     */\n    constructor(name, level = LogType.WARN) {\n        this.name = name;\n        this.level = level;\n        this._pluggables = [];\n    }\n    _padding(n) {\n        return n < 10 ? '0' + n : '' + n;\n    }\n    _ts() {\n        const dt = new Date();\n        return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') +\n            '.' +\n            dt.getMilliseconds());\n    }\n    configure(config) {\n        if (!config)\n            return this._config;\n        this._config = config;\n        return this._config;\n    }\n    /**\n     * Write log\n     * @method\n     * @memeberof Logger\n     * @param {LogType|string} type - log type, default INFO\n     * @param {string|object} msg - Logging message or object\n     */\n    _log(type, ...msg) {\n        let loggerLevelName = this.level;\n        if (ConsoleLogger.LOG_LEVEL) {\n            loggerLevelName = ConsoleLogger.LOG_LEVEL;\n        }\n        if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n            loggerLevelName = window.LOG_LEVEL;\n        }\n        const loggerLevel = LOG_LEVELS[loggerLevelName];\n        const typeLevel = LOG_LEVELS[type];\n        if (!(typeLevel >= loggerLevel)) {\n            // Do nothing if type is not greater than or equal to logger level (handle undefined)\n            return;\n        }\n        let log = console.log.bind(console);\n        if (type === LogType.ERROR && console.error) {\n            log = console.error.bind(console);\n        }\n        if (type === LogType.WARN && console.warn) {\n            log = console.warn.bind(console);\n        }\n        if (ConsoleLogger.BIND_ALL_LOG_LEVELS) {\n            if (type === LogType.INFO && console.info) {\n                log = console.info.bind(console);\n            }\n            if (type === LogType.DEBUG && console.debug) {\n                log = console.debug.bind(console);\n            }\n        }\n        const prefix = `[${type}] ${this._ts()} ${this.name}`;\n        let message = '';\n        if (msg.length === 1 && typeof msg[0] === 'string') {\n            message = `${prefix} - ${msg[0]}`;\n            log(message);\n        }\n        else if (msg.length === 1) {\n            message = `${prefix} ${msg[0]}`;\n            log(prefix, msg[0]);\n        }\n        else if (typeof msg[0] === 'string') {\n            let obj = msg.slice(1);\n            if (obj.length === 1) {\n                obj = obj[0];\n            }\n            message = `${prefix} - ${msg[0]} ${obj}`;\n            log(`${prefix} - ${msg[0]}`, obj);\n        }\n        else {\n            message = `${prefix} ${msg}`;\n            log(prefix, msg);\n        }\n        for (const plugin of this._pluggables) {\n            const logEvent = { message, timestamp: Date.now() };\n            plugin.pushLogs([logEvent]);\n        }\n    }\n    /**\n     * Write General log. Default to INFO\n     * @method\n     * @memeberof Logger\n     * @param {string|object} msg - Logging message or object\n     */\n    log(...msg) {\n        this._log(LogType.INFO, ...msg);\n    }\n    /**\n     * Write INFO log\n     * @method\n     * @memeberof Logger\n     * @param {string|object} msg - Logging message or object\n     */\n    info(...msg) {\n        this._log(LogType.INFO, ...msg);\n    }\n    /**\n     * Write WARN log\n     * @method\n     * @memeberof Logger\n     * @param {string|object} msg - Logging message or object\n     */\n    warn(...msg) {\n        this._log(LogType.WARN, ...msg);\n    }\n    /**\n     * Write ERROR log\n     * @method\n     * @memeberof Logger\n     * @param {string|object} msg - Logging message or object\n     */\n    error(...msg) {\n        this._log(LogType.ERROR, ...msg);\n    }\n    /**\n     * Write DEBUG log\n     * @method\n     * @memeberof Logger\n     * @param {string|object} msg - Logging message or object\n     */\n    debug(...msg) {\n        this._log(LogType.DEBUG, ...msg);\n    }\n    /**\n     * Write VERBOSE log\n     * @method\n     * @memeberof Logger\n     * @param {string|object} msg - Logging message or object\n     */\n    verbose(...msg) {\n        this._log(LogType.VERBOSE, ...msg);\n    }\n    addPluggable(pluggable) {\n        if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n            this._pluggables.push(pluggable);\n            pluggable.configure(this._config);\n        }\n    }\n    listPluggables() {\n        return this._pluggables;\n    }\n}\nConsoleLogger.LOG_LEVEL = null;\nConsoleLogger.BIND_ALL_LOG_LEVELS = false;\n"],"names":[],"mappings":"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"}