Posso estendere l’object console (per redirect la registrazione) in javascript?

È ansible estendere l’object console?

Ho provato qualcosa come:

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

Ma questo non ha funzionato. Voglio aggiungere ulteriore logging all’object console tramite un framework come log4javascript e utilizzare ancora l’object console standard (nei casi in cui log4javascript non è disponibile) nel mio codice.

Grazie in anticipo!

Prova a seguire:

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

Usa il pattern proxy, vedi la mia risposta per un caso simile:

JavaScript: avviso prioritario ()

Spero che questo ti aiuti

Puoi anche aggiungere il tempo di log in questo modo:

aggiunto Momentjs o utilizzare Nuova data () invece di un momento.

 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); }; 
 // console aliases and verbose logger - console doesnt prototype var c = console; cl = c.log, ce = c.error, cv = c.verbose = function() { if (!myclass || !myclass.verbose) // verbose switch return; var args = Array.prototype.slice.call(arguments); // toArray args.unshift('Verbose:'); clapply(this, args); // log }; // you can then do var myclass = new myClass(); myclass.prototype.verbose = false; // generally these calls would be inside your class cv('1 This will NOT log as verbose == false'); cl('2 This will log'); myclass.verbose = true; cv('3 This will log'); 

Ho notato che l’uso sopra di Array.prototype.unshift.call di nitesh è un modo migliore per aggiungere il tag ‘Verbose:’.