javascript क्या मैं जावास्क्रिप्ट में कंसोल ऑब्जेक्ट(लॉगिंग रीरउट करने के लिए) का विस्तार कर सकता हूं?




logging extend (4)

क्या कंसोल ऑब्जेक्ट का विस्तार करना संभव है?

मैंने कुछ ऐसा करने की कोशिश की:

Console.prototype.log = function(msg){
    Console.prototype.log.call(msg);
    alert(msg);
}

लेकिन यह काम नहीं किया। मैं लॉग log4javascript जैसे ढांचे के माध्यम से कंसोल ऑब्जेक्ट में अतिरिक्त लॉगिंग जोड़ना चाहता log4javascript और अभी भी मानक कोड कंसोल ऑब्जेक्ट (उन मामलों में जहां log4javascript उपलब्ध नहीं है) का उपयोग करें।

अग्रिम में धन्यवाद!


आप इस तरह से लॉग टाइम भी जोड़ सकते हैं:

क्षणों के बजाय Momentjs जोड़ा या नई तारीख () का उपयोग करें।

var oldConsole = console.log;
console.log = function(){
    var timestamp = "[" + moment().format("YYYY-MM-DD HH:mm:ss:SSS") + "] ";
    Array.prototype.unshift.call(arguments, timestamp);
    oldConsole.apply(this, arguments);
};

निम्नलिखित का प्रयास करें:

(function() {
    var exLog = console.log;
    console.log = function(msg) {
        exLog.apply(this, arguments);
        alert(msg);
    }
})()

// console aliases and verbose logger - console doesnt prototype
var c = console;
c.l = c.log,
c.e = c.error,
c.v = c.verbose = function() {
    if (!myclass || !myclass.verbose) // verbose switch
        return;
    var args = Array.prototype.slice.call(arguments); // toArray
    args.unshift('Verbose:');
    c.l.apply(this, args); // log
};

// you can then do
var myclass = new myClass();
myclass.prototype.verbose = false;
// generally these calls would be inside your class
c.v('1 This will NOT log as verbose == false');
c.l('2 This will log');
myclass.verbose = true;
c.v('3 This will log');

मैंने नोट किया कि नीतेश द्वारा Array.prototype.unshift.call का उपर्युक्त उपयोग 'वर्बोज़:' टैग जोड़ने का एक बेहतर तरीका है।








extend