"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = __importDefault(require("debug"));
class Logger {
    constructor(prefix) {
        const _prefix = `${Logger.ROOT_PREFIX}:${prefix}`;
        this._debug = debug_1.default(`${_prefix}:DEBUG`);
        this._info = debug_1.default(`${_prefix}:INFO`);
        this._warn = debug_1.default(`${_prefix}:WARN`);
        this._error = debug_1.default(`${_prefix}:ERROR`);
        const log = console.log.bind(console);
        this._debug.log = log;
        this._info.log = log;
        this._warn.log = log;
        this._error.log = log;
    }
    static enable(ns) {
        debug_1.default.enable(ns);
    }
    debug(msg) {
        this._debug(msg);
    }
    info(msg) {
        this._info(msg);
    }
    warn(msg) {
        this._warn(msg);
    }
    error(msg, err) {
        var _a;
        const trace = (_a = err === null || err === void 0 ? void 0 : err.stack) !== null && _a !== void 0 ? _a : 'N/A';
        this._error(`${msg} Trace: ${trace}`);
    }
}
exports.default = Logger;
Logger.ROOT_PREFIX = 'rn-webrtc';
//# sourceMappingURL=Logger.js.map