JSFiddle - React, Tailwind, and code Playground

by lookitstony

HTML

<h1> Press F12 and look at the console to see</h1>

JavaScript

var logger = (function (window, console) {

    // logger object
    function logger() {

        // use to initialize the logger
        function init() {
            fixConsole();
        }

        // fix missing console
        function fixConsole() {
            var logmethod;
            var noop = function () { };
            var logmethods = [
                'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
                'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
                'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
                'timeStamp', 'trace', 'warn'
            ];

            var length = logmethods.length;
            console = (window.console = window.console || {});

            while (length--) {
                logmethod = logmethods[length];

                // Only stub undefined methods.
                if (!console[logmethod]) {
                    console[logmethod] = noop;
                }
            }
        }

        // initializing the logger
        init();
    }

    // logging methods
    logger.prototype = {
        info: function (msg, title) {
            function getErrorObject(){
                try { throw Error('') } catch(err) { return err; }
            }
            
            var err = getErrorObject();
            var caller_line = err.stack.split("\n")[4];
            var index = caller_line.indexOf("at ");
            var clean = caller_line.slice(index+2, caller_line.length);
            var number = clean.match(/(?!:)\d*(?=\:)/g);
            console.log(clean);
            console.log(number[0]);
            if (title)
                console.log(title + ": " + msg);
            else
                console.log(msg);
        }
    }

    // create logger
    function _create() {

        // create logger
        var log = new logger();

        // return logger
        return log;
    }

    // exposed functions
    return {
       ...